这是一个很现实的问题,比如对话框中所用的ActiveX控件未注册,则DoModal之后,对话框无法弹出,系统没有任何提示(实际上是因为CoCreateInstance()调用失败导致无法创建模式对话框)。所以我想在程序启动时就判断一下所用到的所有ActiveX控件是否已注册,以便给出提示信息或重新注册。
这是一个很现实的问题,比如对话框中所用的ActiveX控件未注册,则DoModal之后,对话框无法弹出,系统没有任何提示(实际上是因为CoCreateInstance()调用失败导致无法创建模式对话框)。所以我想在程序启动时就判断一下所用到的所有ActiveX控件是否已注册,以便给出提示信息或重新注册。
抛砖引玉
2.判断是否注册,那么去搜索是否有clsid的注册吧
我有个方法:
在CMainFrame::OnCreate中加入如下代码:
CMyCtrl ctrl; //临时变量,OnCreate退出时自动删除
if (!ctrl.Create(NULL,WS_CHILD,CRect(0,0,0,0),this,0))
AfxMessageBox("控件未注册。");请大家比较一下这个方法和检查注册表CLSID的方法,哪个好?或者有更好的方法??