之前一直要该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"