最近我做了一个实用程序功能,如:
// T2CA
#include "ATLCONV.H"
std::string Utils::CString2String(const CString& cString)
{
#if _MSC_VER > 1200
// Convert a TCHAR string to a LPCSTR
// construct a std::string using the LPCSTR input
CT2CA tmp(cString);
std::string strStd (tmp);
#else
// Deprecated in VC2008.
// construct a std::string using the LPCSTR input
std::string strStd (T2CA (cString));
#endif
return strStd;
}
我做了几个简单的测试,似乎工作正常。但是,当我在网上搜索时,我可以看到VC6中T2CA的大多数用法都有前面的
调用USES_CONVERSION;
有什么我错过的吗?我应该通过以下方式调用我的功能:
#else
// Deprecated in VC2008.
// construct a std::string using the LPCSTR input
USES_CONVERSION;
std::string strStd (T2CA (cString));
#endif
答案 0 :(得分:2)
在ATL 7.0中不再需要USES_CONVERSION
。在此之前,您需要指定USES_CONVERSION
宏,否则您将遇到编译错误。