Недавно я сделал такую утилиту, как:
// 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;
}
Я сделал несколько простых тестов, и, кажется, работает нормально. Однако, когда я ищу в Интернете, я вижу, что большинство использований T2CA в VC6 имеют предшествующий вызов
USES_CONVERSION;
Есть что-нибудь, что я пропустил? Должен ли я вызывать свою функцию по:
#else
// Deprecated in VC2008.
// construct a std::string using the LPCSTR input
USES_CONVERSION;
std::string strStd (T2CA (cString));
#endif