2 yzh07137 yzh07137 于 2014.04.17 10:25 提问

网上下载的duilib源代码编译报错,新手求问如何检查。
c++

下载的是SVN364.先说下错误吧,报错如下:

>C:\Program Files (x86)\Windows Kits\8.1\Include\um\dispex.h(791): error C2011: “ICanHandleException”:“struct”类型重定义
1>          f:\duilib\duilib-svn364-20121126\svn364\duilib\Utils/flash11.tlh(267) : 参见“ICanHandleException”的声明e here

根据报错找到了错误的代码部分,为以下两部分
(1).

#if defined(__cplusplus) && !defined(CINTERFACE)

MIDL_INTERFACE("c5598e60-b307-11d1-b27d-006008c3fbfb")
ICanHandleException : public IUnknown
{
public:
    virtual HRESULT STDMETHODCALLTYPE CanHandleException( 
        /* [in] */ __RPC__in EXCEPINFO *pExcepInfo,
        /* [in] */ __RPC__in VARIANT *pvar) = 0;

};

(2).

`truct __declspec(uuid("c5598e60-b307-11d1-b27d-006008c3fbfb"))
ICanHandleException : IUnknown
{
    //
    // Raw methods provided by interface
    //
  virtual HRESULT __stdcall CanHandleException (
    /*[in]*/ EXCEPINFO * pExcepInfo,
    /*[in]*/ VARIANT * pvar ) = 0;

};

向大神求解这到底是怎么回事额?在网上好像没有找到相关文档。我刚接触这个库,正在学sdk,对MFC不算很了解。
另外有没有大神能告诉我遇到这种类似的问题的解决办法有什么啊,免得我以后每次遇到问题都要来问。多谢了

1个回答

ybpcn
ybpcn   2017.10.24 17:11

#import "..\Utils/Flash11.tlb" raw_interfaces_only, named_guids, rename("IDispatchEx","IMyDispatchEx"),rename("ICanHandleException","IMyCanHandleException")

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!