Любой побочный эффект не использования USES_CONVERSION - PullRequest
2 голосов
/ 08 июня 2010

Недавно я сделал такую ​​утилиту, как:

// 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

1 Ответ

2 голосов
/ 08 июня 2010

В ATL 7.0 USES_CONVERSION больше не требуется. Перед этим вам нужно было указать макрос USES_CONVERSION, иначе вы получите ошибки компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...