La diferencia es la codificación de los parámetros, que son completamente redundantes de todos modos. 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álido en Win32 todos modos
lpCmdLine
está disponible tanto en ANSI y Unicode, a través GetCommandLineA()
y GetCommandLineW()
, respectivamente
nCmdShow
es el parámetro wShowWindow
de la estructura de STARTUPINFO
. Nuevamente, las variantes ANSI y Unicode, a las que se accede usando GetStartupInfoA(STARTUPINFOA*)
y GetStartupInfoW(STARTUPINFOW*)
.
Y al utilizar las API de Win32 para acceder a ellas, es probable que guarde algunas variables globales, como la que guardaba cuidadosamente el identificador de instancia que creía que solo estaba disponible para WinMain
.
si ha definido _UNICODE, entonces el segundo ejemplo sería error porque LPTSTR sería WSTR y no encajaría con WinMain, tanto WINAPI y APIENTRY se definen como __stdcall – Kaije
clic derecho en tWinMain -> elija ir a la definición ... – Jimbo
Su declaración WinMain() no es correcta, el 3er argumento es LPSTR. Ambos son arcaicos, deberías usar wWinMain hoy. –