以下是我使用的代码:
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”。
答案 0 :(得分:-2)
我不熟悉CString(主要是在unix / linux环境下开发),但是引用this,我会使用CStringW来存储wchar_t字符串。
但我认为你的CString初始化是错误的。根据MSDN文档,我宁愿做类似的事情:
CStringW abc = _T(L"Stack Overflow");
否则我建议使用cstdlib中的wcstombs将wchar_t *转换为char *并坚持使用标准。