Visual Studio 2010 编译Duilib源码报错: error C2371: “IDispatchEx”: 重定义;不同的基类型 解决方法
通过SVN从官网下载更新代码,然后用Visual Studio 2010编译报错如下:
解决方法如下:
UIFlash.h
行:#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids
![](//images0.cnblogs.com/blog/587229/201312/02134020-e5a30cb085d147d19b262dd0309f07f8.jpg)
改为:
#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids, rename("IDispatchEx","IMyDispatchEx")
可以解决以上的问题。
![](//images0.cnblogs.com/blog/587229/201312/02134201-796549cf63fc485a8b77547a259ecb68.jpg)
为了兼容性更好,防止系统flash的插件更新后又有问题,干脆直接导入你自己系统的OCX,于是将这一行最好改为:
#import "PROGID:ShockwaveFlash.ShockwaveFlash" \
raw_interfaces_only, /* Don't add raw_ to method names */ \
named_guids, /* Named guids and declspecs */ \
rename("IDispatchEx","IMyDispatchEx") /* fix conflicting with IDispatchEx ant dispex.h */