我有一个可视C ++代码,它使用MFC并创建一个domodal对话框。 该项目不是由我开发的,我的任务是隐藏对话窗口。
我已设法做到这一点,它运作良好一段时间,但现在当dlg.Create
被调用时它返回我:
CoCreateInstance of OLE control {00000000-0000-0000-0000-000000000000} failed
Result code: 0x80040154
Is the control is properly registered?
上面的消息不是构建错误,是dlg.Create
失败后弹出的消息,因此我的应用不会调用::OnInitDialog()
函数。
我对MFC和ActiveX控制器的经验很少,所以我解决问题的所有尝试都失败了。 我检查了注册表项,dll签名,似乎一切正常。
那么你能帮助我或者提示我应该如何处理这个问题并解决它。
下面我将发布问题弹出的代码。
CCRViewerDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if( dlg.Create( CCRViewerDlg::IDD))
{
dlg.ShowWindow( SW_HIDE );
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.RunModalLoop();
}
DWORD lastError = GetLastError();
感谢。
答案 0 :(得分:0)
您的对话框实例已经创建并显示DoModal
次调用。然后你试图再次创建它 - 这将导致各种资源问题。
您需要使用DoModal显示它,然后在对话框代码中隐藏它,或者根本不使用DoModal。