Frage

Was ist die Differenz aus dieser 2 Funktion:

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

int WINAPI WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
War es hilfreich?

Lösung

_tWinMain ist nur eine #define Abkürzung in tchar.h auf die entsprechende Version von WinMain.

Wenn _UNICODE definiert ist, dann _tWinMain expandiert nach wWinMain. Ansonsten _tWinMain ist die gleiche wie WinMain.

Die entsprechende Makro sieht ungefähr so ??aus (es gibt tatsächlich eine Menge anderen Code eingefügt):

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

Andere Tipps

Der Unterschied ist die Codierung der Parameter, die ohnehin völlig überflüssig sind. Werfen Sie einfach die Parameter und stattdessen die folgenden verwenden, in dem Sie die Codierung steuern:

hInstance ist nur GetModuleHandle(0)

hPrevInstance ist nicht gültig in Win32 sowieso

lpCmdLine ist sowohl in ANSI und Unicode verfügbar, über GetCommandLineA() und GetCommandLineW() bzw.

nCmdShow ist der wShowWindow Parameter der STARTUPINFO Struktur. Auch hier, ANSI und Unicode-Varianten zugegriffen GetStartupInfoA(STARTUPINFOA*) und GetStartupInfoW(STARTUPINFOW*) verwendet wird.

Und durch den Win32-APIs diese zuzugreifen, sind Sie wahrscheinlich ein paar globalen Variablen speichern gehen, wie die, wo man genau die Instanz Griff sparten haben Sie nur zu WinMain verfügbar waren.

diesem Link :

_tWinMain hat tatsächlich den hPrevInstance Parameter nehmen, aber das Parameter isn''t verwendet.

_tWinMain ist nur ein #define zu WinMain (in tchar.h).

Es gibt keinen Unterschied zwischen dem zwei.

und

_tWinMain an WinMain definiert, wenn UNICODE nicht definiert ist, und wWinMain wenn es ist. dessen Zweck es ist, können Sie Code schreiben, bauen beide unter ansi und unter Unicode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top