本文介绍了CA2W给了我一个“'AtlThrowLastWin32':找不到标识符".错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我遵循时,出现了一个奇怪的编译错误. MSDN文档使用CA2W在Visual Studio 2005中将big5字符串转换为unicode字符串.

I got a strange compilation error when I followed the MSDN document to use CA2W to convert big5 strings to unicode strings in Visual Studio 2005.

这是我写的代码:

#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':找不到标识符

The compilation error: error C3861: 'AtlThrowLastWin32': identifier not found

我不知道这怎么可能. AtlThrowLastWin32的文档显示需要atldef.h,但我在atldef.h中找不到AtlThrowLastWin32的声明.

I don't know how this could happen. The document of AtlThrowLastWin32 shows that atldef.h is required, but I couldn't find the declaration of AtlThrowLastWin32 in atldef.h.

推荐答案

我终于通过添加2个头文件头解决了这个问题:

I finally solved this problem by adding 2 include headers:

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

我不知道为什么MSDN文档没有提到这一点.

I don't know why the MSDN document doesn't mention that.

这篇关于CA2W给了我一个“'AtlThrowLastWin32':找不到标识符".错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-22 00:49