2009-07-05 10 views
4

ich einen seltsamen Kompilierungsfehler bekam, als ich die MSDN document gefolgt CA2W zu verwenden, um zu konvertieren big5 Strings in Unicode-Strings in Visual Studio 2005.CA2W gab mir einen „‚AtlThrowLastWin32‘: Bezeichner nicht gefunden“ Fehler

Das ist das ist Code schrieb ich:

#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; 
} 

Der Übersetzungsfehler: Fehler C3861: 'AtlThrowLastWin32': Bezeichner nicht gefunden

ich weiß nicht, wie das passieren konnte. Die document of AtlThrowLastWin32 zeigt, dass atldef.h erforderlich ist, aber ich konnte die Erklärung von AtlThrowLastWin32 in atldef.h nicht finden.

Antwort

7

Ich löste dieses Problem endlich durch Zugabe von 2 umfassen Header:

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

Ich weiß nicht, warum das MSDN-Dokument, dass nicht erwähnt wird.

+1

MSDN (auf der Seite, die Sie verlinkt) sagt: > Anforderungen > Header-Datei: atlbase.h, atlconv.h (in atlconv.h erklärt) –

+0

Dank Logan Capaldo. Ich fand schließlich, warum ich verwirrt war. Das Dokument von CA2AEX (http://msdn.microsoft.com/en-us/library/z0d7hetw(VS.80).aspx) erwähnt nur "Requirements Header: atlconv.h" – user95319

Verwandte Themen