Mon projet a une bibliothèque héritée qui considère le pointeur NULL comme une chaîne vide.Peut faire STL chaîne :: c_str() retourne NULL quand il n'a pas de chaîne?
Mais quand je me renvoyer des données de std :: wstring comme celui-ci,
std::wstring strData;
const wchar* pStr = strData.c_str();
ASSERT(NULL == pStr); // ASSERT!!
pStr n'est pas NULL mais pointeur quel point wstring.
Est-ce que je peux faire que std :: string retourne NULL quand il n'a aucune donnée de chaîne? Maintenant, je rechauffera chaque variable membre str comme ceci:
const wchar* GetName() { // I hate this kinds of wrapping function
if (m_Name.empty())
{
return NULL;
}
return m_Name.c_str();
}
Mon environnement de travail est Visual Studio 2008 sp1 dans Windows
Merci à l'avance.