当我尝试将控制台的标题设置为其中包含unicode字符的字符串时,SetConsoleTitle()
标题显示的只是一些垃圾字符.
我也尝试过SetConsoleTitleW()函数,但是这给了我以下错误:
error: cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'BOOL SetConsoleTitleW(const WCHAR*)'
Run Code Online (Sandbox Code Playgroud)
有什么建议?
你必须使用宽字符串文字,即:
SetConsoleTitleW(L"D?D");
Run Code Online (Sandbox Code Playgroud)
的L
,之前报价表示,这是一个wchar_t*
字符串.
另外,对于completness,我不得不说,在C++ 11中,定义了新的字符串文字前缀:
const char a[] = u8"for a UTF-8 string.";
const char_16_t b[] = u"for a UTF-16 string.";
const char_32_t c[] = U"for a UTF-32 string.";
Run Code Online (Sandbox Code Playgroud)
和往常一样,维基百科有更详细的说明.
归档时间: |
|
查看次数: |
437 次 |
最近记录: |