我有一个可视化的C++代码,它使用MFC并创建多模式对话框。这个项目不是我开发的,我的任务是隐藏对话框窗口。
我已经做到了,它运行了一段时间,但现在当调用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控制器的经验很少,所以我所有解决问题的尝试都失败了。我已经检查了注册表项,dlls签名,看起来一切都很好。
所以,你能帮助我或提示我应该如何处理这个问题并解决它吗?
下面我将在问题出现的地方发布代码。
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();
谢谢。
您的对话框实例已经创建,并使用DoModal
调用显示。然后你试图再次创建它——这将导致各种资源问题。
您需要用DoModal显示它,然后在对话框代码中隐藏它,或者根本不使用DoModal。
请参阅类似的问题:隐藏MFC对话框窗口并隐藏MFC对话框