Windowsのコマンドラインに文字コードがある(?)のか?と考えたけど違う
CommandLineToArgvWのページにUnicode ワイド文字で渡されたコマンドライン文字列を解析
とあるので、コマンドラインに文字コードがあるのか?あるならどうやって文字コードを判定するんだ?と思いましたが、以下のプログラムをテストしてそういうことではないことを確認しました。
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBoxW(0,GetCommandLineW(),L"",0); MessageBoxA(0,GetCommandLineA(),"",0); }
コマンド引数にaあ☸を指定して実行しましたが、どっちも表示されました。(AはUnicode文字だけ?表示)
つまりWにするとUnicodeとして、AにするとANSIとして取得するようです。