2009-07-05 6 views
4

Je suis une erreur de compilation étrange quand je suivais le MSDN document à utiliser CA2W pour convertir des chaînes big5 en chaînes unicode dans Visual Studio 2005.CA2W m'a donné un « AtlThrowLastWin32»: identifiant introuvable » erreur

C'est la Code je l'ai écrit:

#include <string> 
#include <atldef.h> 
#include <atlconv.h> 

using namespace std; 


int _tmain(int argc, _TCHAR* argv[]) 
{ 
    string chineseInBig5 = "\xA4\xA4\xA4\xE5"; 
    ATL::CA2W(chineseInBig5.c_str()); 
    return 0; 
} 

L'erreur de compilation: erreur C3861: 'AtlThrowLastWin32': identificateur non trouvé

Je ne sais pas comment cela pourrait se produire. Le document of AtlThrowLastWin32 montre que atldef.h est requis, mais je n'ai pas trouvé la déclaration de AtlThrowLastWin32 dans atldef.h.

Répondre

7

J'ai finalement résolu ce problème en ajoutant 2 têtes comprennent:

#include <atlbase.h> 
#include <atlstr.h> 

Je ne sais pas pourquoi le document MSDN ne mentionne pas.

+1

MSDN (sur la page vous avez lié) dit: > Exigences > fichier d'en-tête: AtlBase.h, Atlconv.h (déclarée dans Atlconv.h) –

+0

Merci à Logan Capaldo. J'ai finalement trouvé pourquoi j'étais confus. Le document de CA2AEX (http://msdn.microsoft.com/en-us/library/z0d7hetw(VS.80).aspx) mentionne seulement "Requirements Header: atlconv.h" – user95319

Questions connexes