ホームページ >バックエンド開発 >C++ >wWinMain を使用すると、MinGW C プロジェクトで「WinMain への未定義の参照」エラーがスローされるのはなぜですか?

wWinMain を使用すると、MinGW C プロジェクトで「WinMain への未定義の参照」エラーがスローされるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-05 11:25:02940ブラウズ

Why Does My MinGW C   Project Throw an

MinGW で wWinMain を使用して WinMain への未定義の参照を解決する (C )

int main() を int WINAPI に置き換えようとしたとき wWinMain(HINSTANCE hInstance、HINSTANCE、PWSTR pCmdLine、int nCmdShow)、MinGW をコンパイラとして使用する C アプリケーションで、「WinMain への未定義の参照」エラー メッセージが表示される場合があります。このエラーは、wWinMain エントリ ポイントをネイティブにサポートしていない、Visual C と MinGW の CRT 起動ライブラリ間の不一致が原因で発生します。

解決策:

MinGW の新しいバージョンの場合-municode リンカー オプションをコマンド ライン、IDE のリンカー オプション、または Makefile に追加すると、wWinMain を使用できるようになります。

g++ other_options_and_arguments -municode

ただし、-municode のサポートがない古いバージョンの MinGW の場合は、解決策は、標準の WinMain 関数の使用に戻すことです。この場合、コードは次のように変更できます。

<code class="c++">int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR pCmdLine, int nCmdShow)</code>

注:

Visual C では wWinMain エントリ ポイントがサポートされていますが、ここで "lpCmdLine" パラメータは次のようになります。 「LPWSTR」では、プリプロセッサ定義の使用が必要になるため、さらに複雑になり、作業がより煩雑になる可能性があります。したがって、プログラムの特定の要件で Unicode コマンド ラインの使用が要求されない限り、MinGW を使用するときは標準の WinMain 関数を使用することをお勧めします。

以上がwWinMain を使用すると、MinGW C プロジェクトで「WinMain への未定義の参照」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。