| |
|
1
|
Programación / Programación C/C++ / Re: como hago funcionar esto?
|
en: Ayer a las 23:31
|
hola si si es asi... de hecho si lo hago por separado me funciona perfecto.. por ejemplo.. for(b = 0; b < 26; b++){ if(dv & 1!=0){ printf("%c\n",(char)('A'+b)); } dv = dv >> 1;
me aparecen las unidades bien... ABCDE y si hago eso for(b = 0; b < 26; b++){ if(dv & 1!=0){ drv[b] = (char)('A'+b); } dv = dv >> 1; } printf("%c\n",drv[2]);
me aparece C o la letra que yo quiero ver..... todo depende del puntero... drv[1] ó drv[3]... etc. pero si quiero unir getlogicaldrives() con getTypeDrive() no se como hacer que las unidades me aparezcan asi A: B: C: y unirlas a GetTypeDrive, para que me diga de que tipo son... por cierto tambien gettypedrive me funciona bien... dtv = GetTypeDrive("C:") switch(dtv){ case 1: printf("error"); .... etc. }
|
|
|
|
|
2
|
Programación / Programación C/C++ / Re: como hago funcionar esto?
|
en: Ayer a las 03:30
|
hola gracias por la respuesta... pero intente hacer esto.... DWORD dv; UINT drv; int b; dv = GetLogicalDrives(); for(b = 0; b < 26; b++){ if(dv & 1!=0){ drv = GetTypeDrive((char)('A'+b)); // aqui necesito colocar esto "C:" pero cuando intento hacerlo... me aparece un error de memoria y se cierra el programa... switch(drv){ ... } } dv = dv >> 1; } quise hacerlo con strcpy y strcat.. haciendo un puntero en buf = (char)('A'+b);
y meter en un array cada letra y seleccionar la que quiero copiarla con strcpy y concatenarla con ":\\"... pero tampoco... y tambien lo intente.. siempre me tira un error... y no entiendo que hago mal...
espero me pouedan ayudar... gracias 
|
|
|
|
|
3
|
Programación / Programación C/C++ / como hago funcionar esto?
|
en: 09 Octubre 2008, 21:27
|
|
una pregunta..
utilizo la api GetLogicalDrives(), y logro sacar las unidades de mi computadora, pero kisiera concatenar las unidades con esto ":\\".. pero no se como porke cuando lo intento me aparece un error de memoria..
lo intente copiar con strcpy, y me aparece tambien el mismo error, y si coloco lstrcpy ya no me aparece el error pero en la pantalla me aparecen simpolos extraños por ejemplo
...CCC ó @@@...
pero kisiera que me kedara "C:\\".. o dependiendo de cualquier unidad... ya logre que me aparezcan las unidades y eligir la que quiero, pero como comente hace un momento... si quiero agregarle ":\\", me sale error o me aparecen simbolos extraños... alguna idea?
|
|
|
|
|
4
|
Programación / Programación C/C++ / Re: no encuentro la libreria Dbghelp.h
|
en: 08 Octubre 2008, 22:51
|
ya lo solucione... solo me falta esto.. haber si alguien me puede ayudar omo puedo hacer que el cursor se posicione en el boton inicio de forma correcta, porke lo kise hacer con SetCursorPos y si me funciono, pero cuando la pantalla tiene otra resolucion o el boton de inicio ed de difernte forma, el cursor no logra posicionarse bien, tambien me pasa si quiero hacerlo en una computadora de escritorio y en una laptop, queda en diferente posicion.
hay alguna manera de que siempre kede sobre el boton inicio?, y como puedo leer las opciones que hay en el menu para que el cursor pueda ejecutarlas, por ejemplo, me gustaria que el cursor se posicionara en alguna opcion de Programas... pero no se me ocurre como puedo leer los menus y posicionar el cursor.
hace tiempo utilize SetWindowText y solo me decia cuando oprimia "inicio", pero nunca supe como leer las cosas que habia alli? alguien sabe como?
|
|
|
|
|
7
|
Programación / Programación C/C++ / ayuda con listview
|
en: 06 Octubre 2008, 21:37
|
hola estaba aprendiendo a usar listview en C y encontre un codigo, pero cuando lo kise compilar con mingw me decia que habian errores, los modifike y ya lo compila, pero las celdas no aparecen, ni tampoco las columnas, solo aparece el resultado o lo que debia de ir en las celdas.. les dejo el codigo para ver si lo pueden revisar y ayudarme a saber porke no funciona como deberia... // --> Explicación // --> Este ejemplo muestra el uso del control listview // --> en nuestras aplicaciones, dicho control es muy // --> util a la hora de mostrar registros // --> y puede configurarse para mostrarse de diversas formas
// --> Autor : Humberto Suárez // --> Email : humbertosc@cantv.net
// --> Este codigo le es suministrado a usted con fines didacticos // --> por favor si lo va a distribuir respete el derecho de autor // --> del mismo
#ifndef WINDOWS_H_ #include <windows.h> #endif
#ifndef WINUSER_H_ #include <winuser.h> #endif
#ifndef COMMCTRL_H_ #include <commctrl.h> #endif
HWND hWndListview; // --> Handle del listview HINSTANCE hInstanciaC; // --> Instancia de la aplicación RECT Posicion; // --> Posicion del rectangulo de la ventana LV_COLUMN lvCol; // --> Para crear columnas char szbuffer[260]; // --> Para almacenar la cadena LV_ITEM lvItem; // --> Para crear items
// --> Constantes de estilo visual del listview // --> Experimente con estos valores para que obtenga lo que necesite
// --> Agrega una columna al listview void AgregarColumna(LPSTR lpszTexto, int nAncho, int nIndice){ lvCol.cchTextMax = 260; lvCol.pszText = lpszTexto; lvCol.mask = LVCF_TEXT|LVCF_WIDTH; lvCol.cx = nAncho; ListView_InsertColumn(hWndListview, nIndice, &lvCol); }
// --> Muestra las grillas en el listview
void UsarGrillas(void){ LPARAM LVS_EX_GRIDLINES; LPARAM LVS_EX_FULLROWSELECT; UINT LVM_SETEXTENDEDLISTVIEWSTYLE; SendMessage(hWndListview, LVM_SETEXTENDEDLISTVIEWSTYLE,0,LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
}
// --> Agrega un item al listview void AgregarItem(LPSTR lpszTexto, int nIndice, int nIndiceImagen){ lstrcpy(szbuffer, lpszTexto); lstrcat(szbuffer, "\0"); lvItem.pszText = szbuffer; lvItem.cchTextMax = sizeof(szbuffer); lvItem.mask = LVIF_TEXT|LVIF_IMAGE; lvItem.iItem = nIndice; lvItem.iImage = nIndiceImagen; ListView_InsertItem(hWndListview, &lvItem); ListView_Update(hWndListview, nIndice); }
// --> Agrega un subitem al listview void AgregarSubItem(int nIndiceItem, int nIndiceSubItem, LPSTR lpszTexto){ lstrcpy(szbuffer, lpszTexto); lstrcat(szbuffer, "\0"); LV_ITEM lv; lv.iSubItem = nIndiceSubItem; lv.pszText = szbuffer; SendMessage(hWndListview, LVM_SETITEMTEXT, (WPARAM) (int) nIndiceItem, (LPARAM) (LV_ITEM FAR *) &lv);
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ switch(uMsg){ case WM_CREATE: // --> Inicia los controles comunes InitCommonControls(); // --> Obtiene el area cliente de la ventana principal GetClientRect(hWnd, &Posicion); // --> Crea el listview
hWndListview = CreateWindowEx(WS_EX_CLIENTEDGE, WC_LISTVIEW, "", WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_SHOWSELALWAYS|LVS_SINGLESEL | LVS_LIST | LVS_REPORT, 10, 10, Posicion.right - 20, Posicion.bottom - 60, hWnd, NULL, hInstanciaC, NULL);
// --> Usamos las grillas UsarGrillas(); // --> Agrega las columnas AgregarColumna("Cedula", 150, 0); AgregarColumna("Nombre(s)", 200, 1); AgregarColumna("Apellidos(s)", 200, 1); // --> Agrega los items AgregarItem("232423343", 0, 0); AgregarSubItem(0, 1, "PEPETO"); AgregarSubItem(0, 2, "LOPEZ"); AgregarItem("1487454", 1, 0); AgregarSubItem(1, 1, "MARIA"); AgregarSubItem(1, 2, "RUIZ"); break;
case WM_DESTROY: PostQuitMessage(0); break; default: // permite responder a cualquier mensaje no especificado return DefWindowProc(hWnd, uMsg, wParam, lParam); } return 0; }
int WINAPI WinMain(HINSTANCE hInstancia, HINSTANCE hInstPrev, LPSTR lpszArgs, int nModo){
HWND hWnd; // Handle de la ventana MSG msg; // Estructura de manejo de mensajes WNDCLASSEX clase; // Estructura para crear clases
// Inicializa las variables de las estructuras ZeroMemory(&msg, sizeof(MSG)); ZeroMemory(&clase, sizeof(WNDCLASSEX));
clase.hInstance=hInstancia; // Instancia de la aplicacion clase.lpszClassName="MI CLASE DE VENTANA"; // nombre de la clase clase.lpfnWndProc=WndProc; // asignamos la funcion de ventana clase.style=0; // estilo 0 clase.cbSize=sizeof(WNDCLASSEX); // el tamaño de WNDCLASSEX clase.hIcon=LoadIcon(NULL, IDI_WINLOGO); // Se asigna el Handle de un icono del sistema clase.hIconSm=LoadIcon(NULL, IDI_WINLOGO); // Se asigna el Handle de un icono del sistema clase.hCursor=LoadCursor(NULL, IDC_ARROW); // Asignamos el Handle del cursos de flecha clase.lpszMenuName=NULL; // No usamos menú, asignamos NULL al puntero del menu clase.cbClsExtra=0; // sin información extra clase.cbWndExtra=0; // sin información extra de la ventana clase.hbrBackground=(HBRUSH) (COLOR_BTNFACE+1); // el color de fondo del sistema RegisterClassEx(&clase); // se registra la clase // la funcion API CreateWindow crea la ventana y devuelve el Handle de la ventana hWnd=CreateWindow("MI CLASE DE VENTANA", "Uso del control listview - MundoC++ -> http://www.iespana.es/elmundoc/",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, HWND_DESKTOP, NULL, hInstancia, NULL);
// Muestra la ventana y actualiza su contenido ShowWindow(hWnd, nModo); UpdateWindow(hWnd);
hInstanciaC = hInstancia; // Crea el bucle de mensajes while(GetMessage(&msg, NULL, 0, 0)){ TranslateMessage(&msg); // descifra el mensaje de Windows DispatchMessage(&msg); // Despacha el mensaje de Windows
}
return msg.wParam; // retorna wParam
}
|
|
|
|
|
8
|
Programación / Programación C/C++ / Re: Problema con alloc.h
|
en: 06 Octubre 2008, 10:01
|
|
ya intentaste con <string.h> o <stdlib.h>
creo que es con string.h para utilizar malloc, o por lo menos yo lo hice en linux y al compilarlo si me funciono... intentalo y nos dices
salu2
|
|
|
|
|
9
|
Programación / Programación C/C++ / Re: no encuentro la libreria Dbghelp.h
|
en: 06 Octubre 2008, 00:50
|
alguien sabe donde puedo descargar el archivo dbghelp.h? y otra pregunta como puedo hacer que el cursor se posicione en el boton inicio de forma correcta, porke lo kise hacer con SetCursorPos y si me funciono, pero cuando la pantalla tiene otra resolucion o el boton de inicio ed de difernte forma, el cursor no logra posicionarse bien, tambien me pasa si quiero hacerlo en una computadora de escritorio y en una laptop, queda en diferente posicion. hay alguna manera de que siempre kede sobre el boton inicio?, y como puedo leer las opciones que hay en el menu para que el cursor pueda ejecutarlas, por ejemplo, me gustaria que el cursor se posicionara en alguna opcion de Programas... pero no se me ocurre como puedo leer los menus y posicionar el cursor. hace tiempo utilize SetWindowText y solo me decia cuando oprimia "inicio", pero nunca supe como leer las cosas que habia alli? alguien sabe como? espero me puedan ayudar.. gracias 
|
|
|
|
|
10
|
Programación / Programación C/C++ / no encuentro la libreria Dbghelp.h
|
en: 05 Octubre 2008, 06:37
|
|
hola
alguien sabe como puedo arreglar este problema?, intento utilizar SearchTreeForFile y al querer compilarlo utilizando la libreria Dbghelp.h, bueno... supuestamente esta es la libreria que se utiliza para eso, o por lo menos en google asi lo encontre, pero cuando intento compilar el codigo que hice con la api Search, me dice que la libreria no se encuentra, alguien sabe que puedo hacer?
|
|
|
|
|
11
|
Programación / Programación C/C++ / Re: como manejar el cursor en C?
|
en: 21 Septiembre 2008, 03:23
|
|
ok.. gracias, yo habia usado setcursorpos en VB6 para saber la posicion del cursor pero no sabia que puedes decir la coordenada y decirle que se mueve alli.. jeje, voy a investigar un poco a ver que encuentro..
tambien gracias Sarkis, es que lo estoy haciendo para que funcione tanto en linux como en window$ lo mas posible... voy a ver que tal me va con ncurses
nos vemos
|
|
|
|
|
12
|
Programación / Programación C/C++ / como manejar el cursor en C?
|
en: 13 Septiembre 2008, 22:14
|
hola como puedo manjear el cursor de manera que si quiero que haga click en inicio lo haga... y al abrirse la ventana haga click en la opcion que yo quiera, por ejemplo programas y que abra el programa que quiero... y quisiera saber que necesito para que el cursor haga eso?... hay alguna api que haga que se mueva el cursor o haga click en alguna opcion o que se puede hacer? espero me puedan ayudar... gracias 
|
|
|
|
|
14
|
Programación / Programación C/C++ / Re: C de Linux y C de Windows
|
en: 01 Septiembre 2008, 05:08
|
|
hola
entonces si yo kisiera usar un api de windows como setwindowtext y si kisiera utilizar alguno parecido en linux, nada mas que todavia no se cual serie el equivalente de setwindowtext en linux jeje... pero entonces podria hacer esto?
#ifdef WIN32 setwindowtext else equivalente de setwindowtext end if
y esto me ayudaria a que el compilador haga su trabajo sin importar en que plataforma me encuentre? y que el programa funcione en esas dos plataformas, bueno obviamente despues de compilar no funcionara... pero puedo compilar en windows o linux sin problemas de que me diga que no se puede porke las librerias o el codigo esta mal?
y por lo que vi en con lympex es que se puede usar en cualquier momento... pero tengo esa duda tambien.. puedo usarlo en cualquier momento?... o es en lugares especificos donde se puede usar?
|
|
|
|
|
15
|
Programación / Programación C/C++ / ayuda con random
|
en: 01 Septiembre 2008, 04:16
|
|
hola
una pregunta... queria usar un random para tener diferentes respuestas de un programa... por ejemplo
char AA[20]="hola mundo"; char BB[20]="adios mundo";
como puedo hacer para que con un random me escoga AA o BB o CC.. etc... intente hacer un random con numeros y luego forzalrlos a char para que me apareciera AA o BB, pero no pude y no se si se pueda hacer eso... alguien me puede ayudar con el random porfavor..
|
|
|
|
|
|
| |
|