如何将wchar_t字符串分配给用户定义的类的CString成员?

时间:2017-05-23 08:21:37

标签: c++ visual-studio mfc

以下是我使用的代码:

C =
         1     1
         2     2
         3     3

调试时我发现断点穿过初始化代码时  class A { public: CString abc; void fun1(); }; void A::fun1() { wchar_t *Str = L"Stack Overflow"; CString xyz = Str; // This works fine. abc = Str; // Whether this assignment is correct? } int main() { A obj; obj.fun1(); return 0; } ,我在变量窗口中看到abc = Str中的字符串未使用abc更新。

当我在调试器窗口中查看时,xyz字符串更新为“Stack Overflow”。

1 个答案:

答案 0 :(得分:-2)

我不熟悉CString(主要是在unix / linux环境下开发),但是引用this,我会使用CStringW来存储wchar_t字符串。

但我认为你的CString初始化是错误的。根据MSDN文档,我宁愿做类似的事情:

CStringW abc = _T(L"Stack Overflow");

否则我建议使用cstdlib中的wcstombs将wchar_t *转换为char *并坚持使用标准。

请参阅wcstombs documentation