将 CString 转换为字符串 (VC6)
我想将 CString 转换为字符串。 (是的。我知道我在做什么。我知道如果 CString 值范围超出 ANSI,返回的字符串将不正确,但没关系!)
以下代码将在 VC2008 下运行。
std::string Utils::CString2String(const CString& cString)
{
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cString);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);
return strStd;
}
但VC6没有CT2CA宏。如何使代码在 VC6 和 VC2008 中都能正常工作?
I want to convert CString to string. (Yup. I know what am I doing. I know the returned string will be incorrect, if CString value range is outside ANSI, but That's Is OK!)
The following code will work under VC2008.
std::string Utils::CString2String(const CString& cString)
{
// Convert a TCHAR string to a LPCSTR
CT2CA pszConvertedAnsiString (cString);
// construct a std::string using the LPCSTR input
std::string strStd (pszConvertedAnsiString);
return strStd;
}
But VC6 doesn't have CT2CA macro. How I can make the code to work as well in both VC6 and VC2008?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Microsoft 表示 CT2CA 取代了 T2CA,因此请尝试后者,看看是否可以有效。
Microsoft says that CT2CA replaces T2CA, so try the latter and see if that works.
由于您不关心 ANSI 范围之外的字符,因此暴力破解就可以了。
Since you don't care about characters outside the ANSI range, brute force would work.