0
ユニコード文字を含むメッセージボックスを生成しようとしていますが、出力が期待どおりではありません。なぜユニコード文字列にガベージが表示されるのですか?
私は間違っていますか?
#define UNICODE
#include <windows.h>
#include <stdio.h>
#include <assert.h>
int WINAPI wWinMain(HINSTANCE , HINSTANCE , PWSTR , int)
{
MessageBox(NULL,L"cyrillic АЖ\nchinese ",L"top Ж bott ",MB_OK | MB_ICONWARNING);
return 0;
}
/*
compiled using
cl /c /Wall test4.cpp
link -out:test4.exe test4.obj user32.lib
*/
出力窓10
上で実行するようコンパイラが、私が間違って何をやっていたのVisual Studio 2017のCommunity Edition
あなたのソースファイルはunicodeとして保存されていますか? – RbMm
ファイルをUTF-8として保存し、ソースコードと文字列リテラルにUTF-8を使用するようにコンパイラに指示します。 '/ utf-8'コマンドラインオプションでcl.exeを実行します。ありがとう、 – eryksun
/utf-8スイッチは、この問題を解決しました。 – user308879