CString导致?尝试分配包含俄语字符的_variant_t.bstrVal时

时间:2018-11-23 04:42:18

标签: c++ mfc c-strings

我正在开发桌面应用程序。 我正面临这个问题。

enter image description here

如运行该代码时在屏幕快照中所见,它为CString分配了俄语字符串,但其值已损坏。

CString csField = vField.bstrVal;

bstrVal包含СтворноеO ^Л。 当我将其分配给CString时,它变为?? s。

1 个答案:

答案 0 :(得分:0)

*记住:发生此问题时,请先检查当前的区域性或区域设置。

问题的答案是:

  

我的代码中有一行将当前的文化设置为   不变的文化。

我无法理解的奇怪事情是,当我通过 setLocale(LC_ALL,NULL)获得当前语言环境时,无论我当前的文化是 Russian ,它都会返回相同的内容>或不变

为解决此问题,我删除了该代码,现在可以正常工作了。

//Thread::CurrentThread->CurrentCulture = gcnew CultureInfo("");