如何打印符号“?” 使用 AfxMessageBox?

Jes*_*ess 2 c++ mfc visual-c++ visual-studio-2013

如何"?"使用打印此符号AfxMessageBox()

我尝试这样编码:

AfxMessageBox("?");
Run Code Online (Sandbox Code Playgroud)

编译后,我得到一个奇怪的符号:

图片

难道AfxMessageBox()不支持这个符号?

Rem*_*eau 5

您的源文件可能保存为 UTF-8。要使用 MBCS 字符串文字,您的源文件需要保存在与您的操作系统用户区域设置相同的字符集中。不幸的是,我认为支持这个特殊字符的字符集并不多。否则,您必须切换到 Unicode。

如果您无法将整个应用程序切换到 Unicode,那么您至少可以MessageBoxW()改用,例如:

::MessageBoxW(NULL, L"?", L"title", MB_OK);
Run Code Online (Sandbox Code Playgroud)

或者

::MessageBoxW(NULL, L"\x2191", L"title", MB_OK);
Run Code Online (Sandbox Code Playgroud)

  • 我强烈建议不要将文字“↑”字符保存到源代码中。在代码页、版本控制系统和不同 IDE 中的其他用户之间,该字符将被损坏。相反,直接将“0x2191”内联到以 null 结尾的“WCHAR”或“wchar_t”数组中。 (3认同)