Разница заключается в кодировании параметров, которые в любом случае являются полностью избыточными. Просто отбросьте параметры и вместо этого используйте следующее, где вы управляете кодировкой:
hInstance
это просто GetModuleHandle(0)
hPrevInstance
недопустимо в Win32 в любом случае
lpCmdLine
доступен как в ANSI, так и в Юникоде, через GetCommandLineA()
и GetCommandLineW()
соответственно
nCmdShow
- это параметр wShowWindow
структуры STARTUPINFO
. Опять же, варианты ANSI и Unicode, доступ к которым осуществляется с помощью GetStartupInfoA(STARTUPINFOA*)
и GetStartupInfoW(STARTUPINFOW*)
.
И используя Win32 API для доступа к ним, вы, вероятно, собираетесь сохранить несколько глобальных переменных, например ту, в которой вы тщательно сохраняли дескриптор экземпляра, который, как вы думали, был доступен только для WinMain
.