vs2008当中使用外部ActiveX,出现.exe 中的 0x08d43974 处未处理的异常: 0xC0000005: Access violation

songjinpeng 2013-02-27 12:45:10
在win7 vs2008当中,我添加了一个外部的控件GraphCtrl.dll,3D控件,如果不在对话框当中加上3D控件,就可以运行,如果加上3D控件就直接退出了,这个问题我解决了,是在cXXXApp::InitInstance()当中加上AfxEnableControlContainer(),但是不知道位置在哪里,是在CWinApp::InitInstance();的前还是后面?
加上以后在运行就显示0x08d43974 处未处理的异常: 0xC0000005: Access violation,出现问题的地方是在HRESULT COleControlSite::DoVerb(LONG nVerb, LPMSG lpMsg)
{
ENSURE(m_pObject!=NULL && m_pCtrlCont!=NULL && m_pCtrlCont->m_pWnd!=NULL);
return m_pObject->DoVerb(nVerb, lpMsg, &m_xOleClientSite, 0,
m_pCtrlCont->m_pWnd->m_hWnd, m_rect);
}
这个是创建控件的时候出错,但是在xp下的vs2008就可以直接运行,求助啥原因?是不是要换一个3D的控件?
...全文
78 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
fishion 2013-02-27
  • 打赏
  • 举报
回复
是不是组件没有完全创建就调用了。。看看 DoVerb函数里哪个数据为空了。 在cXXXApp::InitInstance()的最前面加上 AfxEnableControlContainer,CoInitialize(NULL);等方法应该就行了

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧