• Domingo 19 de Mayo de 2024, 20:36

Autor Tema:  Errorc2731 'winmain' Function Cannot Be Overloaded  (Leído 2289 veces)

KrakenFenix

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Errorc2731 'winmain' Function Cannot Be Overloaded
« en: Domingo 24 de Septiembre de 2006, 22:09 »
0
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

  • Moderador
  • ******
  • Mensajes: 658
    • Ver Perfil
    • http://www.solocodigo.com
Re: Errorc2731 'winmain' Function Cannot Be Overloaded
« Respuesta #1 en: Lunes 25 de Septiembre de 2006, 09:08 »
0
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

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Errorc2731 'winmain' Function Cannot Be Overloaded
« Respuesta #2 en: Lunes 25 de Septiembre de 2006, 09:39 »
0
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".