C++ 丢失Unicode文本的MFC
我有一个MFC对话框: 定义了UNICODE和UNICODEC++ 丢失Unicode文本的MFC,c++,visual-c++,mfc,visual-studio-2019,C++,Visual C++,Mfc,Visual Studio 2019,我有一个MFC对话框: 定义了UNICODE和UNICODE class VerifyComp : public CDialog { public: CString m_VerifyText; virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support }; void VerifyComp::DoDataExchange(CDataExchange* pDX) { m_VerifyText = L&q
class VerifyComp : public CDialog
{
public:
CString m_VerifyText;
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
};
void VerifyComp::DoDataExchange(CDataExchange* pDX)
{
m_VerifyText = L"Ø2.0 X 4.1";
pDx->m_bSaveAndValidate = 0;
DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
pDx->m_bSaveAndValidate = 1;
DDX_Text(pDX, IDC_VERIFY_TEXT, m_VerifyText);
}
结果是m_VerifyText==L“O2.0 X 4.1”;
我希望m_VerifyText保持不变
如何修复此问题?dialog.rc文件中有一个属性导致了此问题
OEM Convert已设置为true。它必须为false。dialog.rc文件中存在导致问题的属性
OEM Convert已设置为true。它必须为false。您遇到的问题是,仅仅因为您具有宽字符文本并不意味着文件本身可以处理Unicode字符
要修复此问题,请使用Unicode字符集保存文件。转到文件->另存为,右键单击“保存”,选择“使用编码保存”,然后单击“是”。现在从编码列表中选择一个Unicode选项(我通常更喜欢带签名的utf-8)。您遇到的问题是,仅仅因为您具有宽字符文本并不意味着文件本身可以处理Unicode字符
要修复此问题,请使用Unicode字符集保存文件。转到文件->另存为,右键单击“保存”,选择“使用编码保存”,然后单击“是”。现在,从编码列表中选择一个Unicode选项(我通常更喜欢带签名的utf-8)。资源脚本是一个脚本的必需部分。请添加它的最低版本。资源脚本是应用程序的必需部分。请添加它的最小版本。