2

したがって、Win32を使用してCodeBlocksでウィンドウを作成しようとしていますが、これまでのところWinMainのこのバージョンのみが機能します(注:これは単純で単純な例です):

#include <windows.h>

INT WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow ) {
    MessageBox( NULL, "Title", "Message", MB_OKCANCEL );
    return 0;
}

ただし、このバージョンでは次のことはできません。

#include <windows.h>

INT WINAPI wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, INT nCmdShow ) {
    MessageBox( NULL, "Title", "Message", MB_OKCANCEL );
    return 0;
}

私の知る限り、後者は 3 番目の引数がワイド文字の文字列へのポインターであることを期待していますが、前者はそうではありません。しかし、CodeBlocks でコンパイルすると、次のメッセージだけが表示されます。

WinMain@16 への未定義の参照

どうやら CodeBlocks は、引数として LPWSTR 値を受け取らないバージョンの WinMain を想定しています。私の質問は、wWinMain でコンパイルされるように CodeBlocks を構成するにはどうすればよいですか?

4

1 に答える 1