CoCreateInstance of OLE control {648A5600-2C6E-101B-82B6-000000000014} failed.
>>> Result code: 0x80040154
>>> Is the control is properly registered?
提示是有个控件没有正确注册,但是一时也想不到是哪个控件。
通过查找67397AA3-7FB1-11D0-B148-00A0C922E820,发现其对应的ID为IDC_ADODC1,
接着查找IDC_ADODC1,DDX_Control(pDX, IDC_ADODC1, m_Adodc);
而m_Adodc有继承类,CAdodc m_Adodc
所以可以判定应是这个类的控件没注册导致出错,上网搜索msadodc.ocx,下载,放到C:\WINDOWS\system32;注册regsvr32 msadodc.ocx,成功运行;
转:http://blog.csdn.net/chenyujing1234/article/details/7843052
mscomm32.ocx免费下载地址: http://www.rayfile.com/zh-cn/files/aa702b11-e11a-11e1-9c94-0015c55db73d/
一、现象描述:
打开资源文件时显示说:
未在此计算机上注册ActiveX控件"{648A5600-2C6E-101B-82B6-000000000014}"。请注册该控件并重试 该怎么办呢?
二、原因分析
在我们的代码中有如下:
且m_ctrlComm的类型为:
而类CMSComm的定义如下:
上面画红线底的部分就是我们报错时提示的CLSID,我在猜想在进入资源浏览时会调用到CreateControl,而且CreateControl会调用 GetClsid()来加载此CLSID对应的.ocx文件。
三、解决方法
1、本地找到mscomm32.ocx或网上下载;
2、注册mscomm32.ocx文件
法一、手动操作;
首先,手动把mscomm32.ocx文件拷到C:\WINDOWS\system32 下;
然后:开始->运行,输入 regsvr32 msflxgrd.ocx;
最后,编辑以下内容到新建的.reg文档中:
运行这个.reg文件,完成注册。
法二、批处理操作(推荐用法);
写一个批处理文件完成法一中完成的四个步骤,如下:
把mscomm32.ocx与批处理文件放在同级目录,运行即OK。