Pregunta

¿Cuáles son las diferencias entre estos 2 función:?

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
¿Fue útil?

Solución

_tWinMain es sólo un acceso directo en #define tchar.h a la versión adecuada de WinMain.

Si se define _UNICODE, luego se expande _tWinMain a wWinMain. De lo contrario, _tWinMain es el mismo que WinMain.

La macro miradas relevante algo como esto (en realidad hay un montón de otros códigos intercalados):

#ifdef  _UNICODE
#define _tWinMain  wWinMain
#else
#define _tWinMain  WinMain
#endif

Otros consejos

La diferencia es la codificación de los parámetros, que son completamente todos modos redundante. Simplemente tirar a la basura los parámetros y en su lugar utilizar el siguiente, donde el control de la codificación:

hInstance es sólo GetModuleHandle(0)

hPrevInstance no es válida en Win32 todos modos

lpCmdLine está disponible tanto en ANSI y Unicode, a través de GetCommandLineA() y GetCommandLineW(), respectivamente

nCmdShow es el parámetro wShowWindow de la estructura STARTUPINFO. Una vez más, ANSI y Unicode variantes, visitada usando GetStartupInfoA(STARTUPINFOA*) y GetStartupInfoW(STARTUPINFOW*).

Y mediante el uso de las API de Win32 para tener acceso a estos, lo que probablemente va a ahorrar unos cuantos variables globales, como en el que estabas ahorrando cuidadosamente el identificador de instancia que pensaba que era sólo está disponible para WinMain.

este enlace :

tWinMain realmente hace tomar el parámetro hPrevInstance, pero eso parámetro isn''t utilizado.

_tWinMain es sólo un #define a WinMain (en tchar.h).

No hay ninguna diferencia entre el dos.

y

tWinMain se define a WinMain éste no se ha definido, y para wWinMain si lo es. su propósito es le permiten escribir código que va a construir ambos bajo ANSI y bajo Unicode.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top