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