Heim >Backend-Entwicklung >C++ >Warum gibt MinGW bei der Verwendung von wWinMain in C den Fehler „Undefinierter Verweis auf WinMain' aus?
Auflösen eines undefinierten Verweises auf WinMain bei Verwendung von wWinMain in C (MinGW)
Beim Versuch, wWinMain zu verwenden (HINSTANCE hInstance, HINSTANCE, PWSTR pCmdLine , int nCmdShow) als Programmeinstiegspunkt in C unter MinGW kann ein „undefinierter Verweis auf WinMain“-Fehler auftreten.
Ursache:
MinGW, insbesondere ältere Versionen , unterstützt den wWinMain-Einstiegspunkt nicht nativ, der ein Befehlszeilenargument mit Breitzeichen (WCHAR) erwartet.
Lösung:
Es gibt zwei mögliche Lösungen:
1. Verwenden Sie das Flag -municode:
Neuere Versionen von MinGW unterstützen das Linker-Flag -municode, das zu einem alternativen Startcode wechselt, der die Verwendung von wWinMain ermöglicht. Fügen Sie dieses Flag zu Ihrer Befehlszeile, den Linker-Optionen in Ihrer IDE oder Ihrem Makefile hinzu:
g++ other_options_and_arguments -municode
2. Verwenden Sie den WinMain-Einstiegspunkt:
Für ältere Versionen von MinGW oder wenn Sie das Flag -municode nicht verwenden möchten, können Sie auf die Verwendung des Standard-WinMain-Einstiegspunkts zurückgreifen. Dazu müssen Sie Ihren Code wie folgt ändern:
Zusätzlicher Hinweis:
Wenn Sie später in Ihrem Programm auf Unicode-Befehlszeilenargumente zugreifen müssen, verwenden Sie LPWSTR cmd_line = GetCommandLineW(); anstatt das WinMain-Argument zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum gibt MinGW bei der Verwendung von wWinMain in C den Fehler „Undefinierter Verweis auf WinMain' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!