关于error C2872: 'LONG_PTR' : ambiguous symbol

Posted lichongbin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于error C2872: 'LONG_PTR' : ambiguous symbol相关的知识,希望对你有一定的参考价值。

今天用VS2010创建了一个add-in工程,使用常量INVALID_HANDLE_VALUE时,编译器就提示如下错误:

error C2872: ‘LONG_PTR‘ : ambiguous symbol

研究发现是dte80a.olb导入的头文件中重定义了此类型。

在stdafx.h中找到

#import <dte80a.olb> raw_interfaces_only named_guids
修改这句指令即可:

#import <dte80a.olb> raw_interfaces_only named_guids rename("LONG_PTR","LONG_PTRDTE")

再编译,继续提示如下错误:

error C2872: ‘ULONG_PTR‘ : ambiguous symbol

ULONG_PTR也被重新定义了,于是修改如下:

#import <dte80a.olb> raw_interfaces_only named_guids rename("LONG_PTR","LONG_PTRDTE") rename("ULONG_PTR","ULONG_PTRDTE")

编译通过!

以上是关于关于error C2872: 'LONG_PTR' : ambiguous symbol的主要内容,如果未能解决你的问题,请参考以下文章

在构建期间使用 Qt 时出错:C2872:“字节”:不明确的符号 [重复]

MySQL报错:ERROR 1406 (22001) at line 486: Data too long for column 'COMMENTS' at row 1

1>TestDlg.obj : error LNK2019: 无法解析的外部符号 "long __stdcall WinSunProc(struct HWN

IntellJ IDEAidea启动测试类报错Error running 'Test1.test': Command line is too long. Shorten comma(代

error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CGTJAIEAss

Idea运行报错Error running ‘Application‘: Command line is too long的解决方法