Różnica polega kodowanie parametrów, które są całkowicie zbędne i tak. Po prostu wyrzucić parametry i zamiast korzystać z następujących, gdzie można kontrolować Kodowanie:
hInstance
tylko GetModuleHandle(0)
hPrevInstance
nie jest ważny w Win32 i tak
lpCmdLine
jest dostępna zarówno ANSI i Unicode, poprzez GetCommandLineA()
i GetCommandLineW()
, odpowiednio
nCmdShow
jest parametrem wShowWindow
o strukturze STARTUPINFO
. Ponownie, warianty ANSI i Unicode, dostępne za pomocą GetStartupInfoA(STARTUPINFOA*)
i GetStartupInfoW(STARTUPINFOW*)
.
Używając interfejsów API Win32, aby uzyskać do nich dostęp, prawdopodobnie zachowasz kilka zmiennych globalnych, na przykład ostrożnie zapisując uchwyt instancji, który według Ciebie był dostępny tylko dla WinMain
.
jeśli zdefiniowano _UNICODE, potem drugi przykład to błąd, ponieważ LPTSTR byłoby WSTR i nie pasuje WinMain, zarówno WINAPI i APIENTRY są zdefiniowane jako __stdcall – Kaije
prawym przyciskiem myszy na _tWinMain -> wybierz przejść do definicji ... – Jimbo
Twoja deklaracja WinMain() nie jest poprawna, trzecim argumentem jest LPSTR. Oba są archaiczne, powinieneś używać dzisiaj wWinMain. –