[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