Programación General > Visual C++

 Errorc2731 'winmain' Function Cannot Be Overloaded

(1/1)

KrakenFenix:
Hola al compilar un programa me da el siguiente error. Es el ejemplo inicial para aprender la Api de windows:

error C2731: 'WinMain' : function cannot be overloaded   

Trozo de codigo:

int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
   MSG Mensaje;

   if(!hPrevInstance)
   {
      if(!IniciaAplicacion(hInstance))
         return FALSE;
   }
   
   if(!IniciaInstancia(hInstance,nCmdShow))
         return (FALSE);


   while (GetMessage(&Mensaje, NULL,NULL,NULL))
   {
      TranslateMessage(&Mensaje);
      DispatchMessage(&Mensaje);
   }

   return (Mensaje.wParam);
}

No encuentro la solucion a esto. ¿Alguien puede ayudarme? Muchas Gracias.

Diodo:
Hola

Ese error creo que es porque estas metiendo argumentos que no son correctos. Por eso te dice que estas sobrecargando la funcion

Los 2 primeros argumentos de la funcion WinMain no son HANDLE si no que son HINSTANCE

int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nShowCmd)

Aca te dejo 2 paginas para que te guies un poco

http://winapi.conclase.net/curso/index.php?cap=003#TIPICA
http://www.dcp.com.ar/sdk/win32p1.htm#winmain

salu2  :hola:

KrakenFenix:
Si, es cierto, ayer por la noche acabé por descubrir que pasaba.

Supongo que han cambiado la definición del WinMain. Copie ese trozo de un libro y está con HANDLE. Asi que puede que sea un error de libro o de que han actualizado el winMain.
Estoy usando Visual Studio 8 (2005).

Lo he ido a compilar ahora con Dev C++ y me da error en el WinMain y me dice que el HINSTANCE pa ti.

Asi que creo que han debido cambiar el WinMain.

Me di cuenta gracias al asistente que al abrir parentesis te dice los parametros que tiene. Y vi que aquello no era igual.

Ante todo muchas gracias por responder tan rápido "Diodo".

Navegación

[0] Índice de Mensajes

Ir a la versión completa