在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的控件?