【发布时间】:2015-05-15 20:01:20
【问题描述】:
我已经声明了以下方法来将整数转换为 LPCTSTR 以用于 MFC 应用程序。
LPCTSTR CTCPServerDlg::Int32ToLPCTSTR(int i32) {
std::wostringstream ss;
ss << i32;
LPCTSTR res = ss.str().c_str();
MessageBox(ss.str().c_str()); // Correctly shows value.
MessageBox(res); // Nothing shown.
return res;
}
如上所述,第一个消息框正确显示了我传递给 i32 参数的整数。第二个消息框不显示任何内容(或者我认为是不可见字符)。像这样调用函数时:
MessageBox(Int32ToLPCTSTR(3));
我得到了一些奇怪的字符。我认为这是一个中国符号。我知道在 Windows 中具有不同类型的 Unicode 和 ANSI 可能会使我们中的大多数人感到困惑,但是 ss.str().c_str() 的返回值应该正确分配给我声明的 LPCTSTR res 变量对吗?此外,当尝试将创建的 LPCTSTR 插入 CEdit 控件时,我得到了更多未知的汉字,都与以前不同。
抱歉,如果我是愚蠢的,感谢您的帮助!
【问题讨论】: