错误描述如下:
1>d:/visual studio 2005/projects/iehost/maindlg.h(112) : error C2440: 'static_cast' : cannot convert from 'ATL::IDispEventSimpleImpl<nID,T,pdiid> *' to 'IDispatch *'
1> with
1> [
1> nID=37,
1> T=CMainDlg,
1> pdiid=& DIID_DWebBrowserEvents2
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:/visual studio 2005/projects/iehost/maindlg.h(112) : error C2440: 'initializing' : cannot convert from 'ATL::_ATL_CREATORARGFUNC (__stdcall *)' to 'DWORD_PTR'
1> There is no context in which this conversion is possible
1>maindlg.cpp
1>d:/visual studio 2005/projects/iehost/maindlg.h(112) : error C2440: 'static_cast' : cannot convert from 'ATL::IDispEventSimpleImpl<nID,T,pdiid> *' to 'IDispatch *'
1> with
1> [
1> nID=37,
1> T=CMainDlg,
1> pdiid=& DIID_DWebBrowserEvents2
1> ]
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>d:/visual studio 2005/projects/iehost/maindlg.h(112) : error C2440: 'initializing' : cannot convert from 'ATL::_ATL_CREATORARGFUNC (__stdcall *)' to 'DWORD_PTR'
1> There is no context in which this conversion is possible
解决方法:
1、把COM_INTERFACE_ENTRY2改为COM_INTERFACE_ENTRY_IID;
2、把IDispatch改为IID_IDispatch。
本文解决了一个关于Visual Studio 2005中IEHost项目的编译错误,错误涉及COM_INTERFACE_ENTRY2与IDispatch类型的转换问题。通过将COM_INTERFACE_ENTRY2更改为COM_INTERFACE_ENTRY_IID,并将IDispatch更改为IID_IDispatch来修复。

2027

被折叠的 条评论
为什么被折叠?



