CA2W 给了我一个““AtlThrowLastWin32”:找不到标识符” 错误

发布于 2024-07-26 07:58:50 字数 713 浏览 9 评论 0原文

当我按照 MSDN 文档< /a> 在 Visual Studio 2005 中使用 CA2W 将 big5 字符串转换为 unicode 字符串。

这是我编写的代码:

#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的声明。

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.

This is the code I wrote:

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

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

赴月观长安 2024-08-02 07:58:50

我最终通过添加2个包含头解决了这个问题:

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

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

I finally solved this problem by adding 2 include headers:

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文