今天用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")

编译通过!

05-08 15:09