[C con Clase] Duda
Miguel Alejandro Jimenez Ramirez
cerberbero en gmail.com
Mie Nov 28 01:16:52 CET 2012
I muchas gracias Steven como siempre muy preciso , de todas formas hay
un error en el siguiente capitulo de este curso, cuando hay un ejemplo
de una funcion Winmain tipica , esta el codigo:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdParam, int nCmdShow)
{
/* Declaración: */
HWND hwnd;
MSG mensaje;
WNDCLASSEX wincl;
/* Inicialización: */
/* Estructura de la ventana */
wincl.hInstance = hInstance;
wincl.lpszClassName = "NUESTRA_CLASE";
wincl.lpfnWndProc = WindowProcedure;
wincl.style = CS_DBLCLKS;
wincl.cbSize = sizeof(WNDCLASSEX);
/* Usar icono y puntero por defecto */
wincl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor(NULL, IDC_ARROW);
wincl.lpszMenuName = NULL;
wincl.cbClsExtra = 0;
wincl.cbWndExtra = 0;
wincl.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
/* Registrar la clase de ventana, si falla, salir del programa */
if(!RegisterClassEx(&wincl)) return 0;
hwnd = CreateWindowEx(
0,
"NUESTRA_CLASE",
"Ejemplo 001",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
544,
375,
HWND_DESKTOP,
NULL,
hThisInstance,
NULL
);
ShowWindow(hwnd, SW_SHOWDEFAULT);
/* Bucle de mensajes: */
while(TRUE == GetMessage(&mensaje, 0, 0, 0))
{
TranslateMessage(&mensaje);
DispatchMessage(&mensaje);
}
return mensaje.wParam;
}
Al compilarlo aparece un error:
`WindowProcedure' undeclared (first use this function)
`hThisInstance' undeclared (first use this function)
no se en onde se declaran WindowProcedure y hThisInstance??
cordialmente
On 28 November 2012 00:51, Davidson, Steven <srd4121 en njit.edu> wrote:
> Hola Miguel,
>
> Está en el mismo fichero de cabecera, <winuser.h>. La definición de
> 'CREATESTRUCTA' es:
>
> typedef struct tagCREATESTRUCTA {
> LPVOID lpCreateParams;
> HINSTANCE hInstance;
> HMENU hMenu;
> HWND hwndParent;
> int cy;
> int cx;
> int y;
> int x;
> LONG style;
> LPCSTR lpszName;
> LPCSTR lpszClass;
> DWORD dwExStyle;
> } CREATESTRUCTA,*LPCREATESTRUCTA;
>
> El prefijo 'A' significa ANSI que aquí implica ASCII, mientras que la
> 'W' es para "carácter ancho" lo que implica que se usa UNICODE. La
> definición de 'CREATESTRUCTW' es la misma que la anterior pero se usa
> 'LPCWSTR' en lugar de 'LPCSTR'.
>
>
> Espero haber aclarado la duda.
>
> Steven
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
--
MIGUEL ALEJANDRO JIMENEZ R.
Más información sobre la lista de distribución Cconclase