Heim >Backend-Entwicklung >C++ >Warum gibt MinGW bei der Verwendung von wWinMain in C den Fehler „Undefinierter Verweis auf WinMain' aus?

Warum gibt MinGW bei der Verwendung von wWinMain in C den Fehler „Undefinierter Verweis auf WinMain' aus?

Linda Hamilton
Linda HamiltonOriginal
2024-11-05 11:23:02299Durchsuche

Why does MinGW throw an

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:

  • WinMain in WinMain ändern
  • PWSTR pCmdLine in PSTR pCmdLine ä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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn