今天用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")
编译通过!