4

Visual Studio 2005でCA2Wを使用してbig5文字列をUnicode文字列に変換するために、 MSDNドキュメントに従ったときに、奇妙なコンパイルエラーが発生しました。

これは私が書いたコードです:

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

コンパイルエラー:エラーC3861:'AtlThrowLastWin32':識別子が見つかりません

これがどのように起こるのかわかりません。AtlThrowLastWin32のドキュメントには、atldef.hが必要であることが示されていますが、atldef.hでAtlThrowLastWin32の宣言が見つかりませんでした。

4

1 に答える 1

7

私はついに2つのインクルードヘッダーを追加することでこの問題を解決しました:

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

なぜMSDNドキュメントにそれが記載されていないのかわかりません。

于 2009-07-05T01:32:39.607 に答える