duilib编译flash空间的时候提示IDispatchEx重复定义的解决方案

duilib编译flash空间的时候提示IDispatchEx重复定义的解决方案
之前一直要该tlb文件,或者修改生成之后的文件,结果总是有问题,果然VC牛逼啊,,,
今天到网上看到终极方案了,确实是有效的

解决办法如下:
    UIFlash.h
  行:#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids
  
  改为:
  #import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids, rename("IDispatchEx","IMyDispatchEx")
  可以解决以上的题目。
  
  为了兼容性更好,防止体系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 */  

来了第二种姐姐方案:
在UIWebXXXX.h 和.cpp中,把cpp的头文件移动到h里边,可能是<ExDisp.h>里边一些宏在起作用

#include <mshtml.h>
#include <atlconv.h>
#include <atlcomcli.h>
#include "Utils/WebBrowserEventHandler.h"
#include <ExDisp.h>
----------------------------------------------------
#include "../Utils/downloadmgr.h"

你可能感兴趣的:(duilib编译flash空间的时候提示IDispatchEx重复定义的解决方案)