Heim > Artikel > Backend-Entwicklung > Warum gibt mein MinGW-C-Projekt bei der Verwendung von wWinMain den Fehler „Undefinierter Verweis auf WinMain“ aus?
Auflösen eines undefinierten Verweises auf WinMain mithilfe von wWinMain in MinGW (C)
Beim Versuch, int main() durch int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine, int nCmdShow) in einer C-Anwendung, die MinGW als Compiler verwendet, können Benutzer auf die Fehlermeldung „Undefinierter Verweis auf WinMain“ stoßen. Dieser Fehler entsteht aufgrund von Diskrepanzen zwischen Visual C und den CRT-Startbibliotheken von MinGW, die den wWinMain-Einstiegspunkt nicht nativ unterstützen.
Lösung:
Für neuere Versionen von MinGW Durch Hinzufügen der Linker-Option -municode zur Befehlszeile, Linker-Optionen in der IDE oder im Makefile wird die Verwendung von wWinMain ermöglicht.
g++ other_options_and_arguments -municode
Für ältere Versionen von MinGW, die keine Unterstützung für -municode haben, gilt jedoch: Die Lösung besteht darin, wieder die Standard-WinMain-Funktion zu verwenden. In diesem Fall kann der Code wie folgt geändert werden:
<code class="c++">int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR pCmdLine, int nCmdShow)</code>
Hinweis:
Während Visual C den wWinMain-Einstiegspunkt unterstützt, an dem sich der Parameter „lpCmdLine“ befindet Ein „LPWSTR“ führt zu zusätzlicher Komplexität, da die Verwendung von Präprozessordefinitionen erforderlich ist, und die Arbeit damit kann umständlicher sein. Daher wird empfohlen, bei der Arbeit mit MinGW die Standard-WinMain-Funktion zu verwenden, es sei denn, die spezifischen Anforderungen des Programms erfordern die Verwendung von Unicode-Befehlszeilen.
Das obige ist der detaillierte Inhalt vonWarum gibt mein MinGW-C-Projekt bei der Verwendung von wWinMain den Fehler „Undefinierter Verweis auf WinMain“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!