Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法使用Unicode特殊字符设置窗口文本_C++_C_Unicode_Mfc - Fatal编程技术网

C++ 无法使用Unicode特殊字符设置窗口文本

C++ 无法使用Unicode特殊字符设置窗口文本,c++,c,unicode,mfc,C++,C,Unicode,Mfc,我正在尝试使用下面指定的unicode特殊字符按代码设置对话框项文本: 我一直在尝试调用SetWindowTextW函数,将UTF-16(十六进制)值作为参数传递,但没有成功: GetDlgItem(IDSETTINGS)->SetWindowTextW(_T("\uD83C\uDF10")); 在构建解决方案时,我遇到两个错误: 错误C3850:“\uD83C”是通用字符-。名称指定了无效字符 错误C3850:“\uDF10”是通用字符-。名称指定了无效字符 非常感谢您的帮助。在这种

我正在尝试使用下面指定的unicode特殊字符按代码设置对话框项文本:

我一直在尝试调用SetWindowTextW函数,将UTF-16(十六进制)值作为参数传递,但没有成功:

GetDlgItem(IDSETTINGS)->SetWindowTextW(_T("\uD83C\uDF10"));
在构建解决方案时,我遇到两个错误:

错误C3850:“\uD83C”是通用字符-。名称指定了无效字符

错误C3850:“\uDF10”是通用字符-。名称指定了无效字符


非常感谢您的帮助。

在这种情况下,编译器错误C3850的原因可以在(我的重点部分)中找到:

表示为通用字符名的字符必须表示 范围为0-10FFFF的有效Unicode代码点。普遍性 名称不能包含Unicode代理项范围D800-DFFF中的值, 或编码的代理项对。编译器生成代理项 自动从有效代码点配对

使用UTF-32代码点对我来说很有用:

GetDlgItem( IDSETTINGS )->SetWindowTextW( L"\U0001F310" );
如果您确保源文件是使用Unicode编码存储的,那么您也可以直接将字符存储在源文件中,我建议将UTF-8与BOM一起使用


GetDlgItem(IDSETTINGS)->SetWindowTextW(L)“您是否尝试过
SetWindowTextW
\T()
不兼容。请将
L”“
与Unicode版本的API调用一起使用。通常可以通过在MSDN中查找错误代码来获得更深入的解释。您可以为每个窗口分别设置字体。
L“\xD83C\xDF10”
也适用于您的工作:)值得注意的是,出现了此错误,因为相关代码试图对代理项对进行编码。“通用字符名不能包含Unicode代理项范围内的值D800-DFFF或编码的代理项对。编译器会自动从有效的代码点生成代理项对。“@IInspectable谢谢,我已经从引用中添加了相关引用。