error C2872: ULONG_PTR : ambiguous symbol 问题的解决
2010-12-12 20:02
323 查看
error C2872: 'ULONG_PTR' : ambiguous symbol 问题的解决
在做DTE addin插件开发的时候,使用了atl的CString,出现如下的错误
vc/atlmfc/include/cstringt.h(2508): error C2872: 'ULONG_PTR' : ambiguous symbol
//省略错误信息
原因是basetsd.h(123) : __w64 unsigned long ULONG_PTR'与DTE中的EnvDTE::ULONG_PTR定义冲突
在codeproject上找到了解决方法,在引入DTE 的类型库时,将ULONG_PTR改名:
将自动生成的stdafx.h中的
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
后面增加对ULONG_PTR的改名,变为如下的样子:
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids rename("ULONG_PTR","ULONG_PTRDTE")
顺便说一下用到的import预处理指令的两个属性
named_guids:定义IID和CLSID的名字,否则要用__uuidof(...)来引用
raw_interface_only:仅使用原始接口,缺省时import会自动生成符合automation的接口。
比如:
Foo([out, retval] long * pVal);这个函数,缺省时调用:long val = obj->Foo();
如果用了raw_interface_only就要:
long val;
xx->Foo(&val);
参考资料:
1.#import属性 http://msdn.microsoft.com/en-us/library/298h7faa(v=VS.80).aspx 2.codeproject中关于处理此问题的回复 http://www.codeproject.com/KB/system/caaregistryclass.aspx?msg=2330913 3.import的两个属性解释 http://hi.baidu.com/invisiable/blog/item/370bb71b209a2ff0ae513318.html
在做DTE addin插件开发的时候,使用了atl的CString,出现如下的错误
vc/atlmfc/include/cstringt.h(2508): error C2872: 'ULONG_PTR' : ambiguous symbol
//省略错误信息
原因是basetsd.h(123) : __w64 unsigned long ULONG_PTR'与DTE中的EnvDTE::ULONG_PTR定义冲突
在codeproject上找到了解决方法,在引入DTE 的类型库时,将ULONG_PTR改名:
将自动生成的stdafx.h中的
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids
后面增加对ULONG_PTR的改名,变为如下的样子:
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("8.0") lcid("0") raw_interfaces_only named_guids rename("ULONG_PTR","ULONG_PTRDTE")
顺便说一下用到的import预处理指令的两个属性
named_guids:定义IID和CLSID的名字,否则要用__uuidof(...)来引用
raw_interface_only:仅使用原始接口,缺省时import会自动生成符合automation的接口。
比如:
Foo([out, retval] long * pVal);这个函数,缺省时调用:long val = obj->Foo();
如果用了raw_interface_only就要:
long val;
xx->Foo(&val);
参考资料:
1.#import属性 http://msdn.microsoft.com/en-us/library/298h7faa(v=VS.80).aspx 2.codeproject中关于处理此问题的回复 http://www.codeproject.com/KB/system/caaregistryclass.aspx?msg=2330913 3.import的两个属性解释 http://hi.baidu.com/invisiable/blog/item/370bb71b209a2ff0ae513318.html
相关文章推荐
- error C2872: ULONG_PTR : ambiguous symbol 问题的解决
- error C2872: 'ULONG_PTR' : ambiguous symbol
- 解决ambiguous symbol命名空间中类名、变量名冲突的问题
- "streambuf" ambiguous symbol的问题如何解决
- error C2872: 'ofstream' : ambiguous symbol 错误解决
- "streambuf" ambiguous symbol的问题如何解决
- error C2872: 'ULONG_PTR' : ambiguous symbol
- AndroidStudio的 cant resolve symbol R (找不到R文件)问题的解决办法
- shared_ptr 配合 weak_ptr 解决环形内存问题
- VC6.0 CXX0017:Error:symbol "xxx" not found问题解决方法
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- 解决unique_ptr在不同继承层次转化指针和deleter的问题
- error C2872: ‘ofstream’ : ambiguous symbol
- ldd -r xxx.so命令的重要作用------见招拆招地解决缺库问题(undefined symbol)
- 【VC编译错误】error C2872: 'ofstream' : ambiguous symbol
- error C2872: “flann”: 不明确的符号 --- PCL 与OpenCV2 的flann命名空间冲突问题的解决方法
- MTK编译出现Undefined symbol Image$$ZI$$Limit的问题解决
- 解决Eclipse中C++代码显示Symbol 'std' could not be resolved的问题
- iOS duplicate symbol _main in:问题解决
- error: use of deleted function boost::shared_ptr 问题解决