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 サイトの他の関連記事を参照してください。