com编程错误急问:0x80040154 没有注册类别
我要操作的com对象是一个第三方所提供的一个exe程序,错误表现为:
1)在vb中可以从reference中引入对应的exe文件,
并可使用Dim com As New libname.objectname进行调用,
而且调用时一切正常。
2)我用ultraedit打开vb的vbp文件,得到vb工程的引用信息
Reference=*\G{4D147C00-2321-11D7-B55D-00A02442C845}。。。
由此我确定此com对象的clsid为4D147C00-2321-11D7-B55D-00A02442C845
并检查注册表,得出相同的clsid
3)接着在vc中进行com编程,代码为:
static const IID CLSID_OCR
={0xA9939280, 0x2322, 0x11D7, 0xB5, 0x5D, 0x00, 0xA0, 0x24, 0x42, 0xc8, 0x45};
hr = CoInitialize(NULL);
if(!SUCCEEDED(hr))
{
AfxMessageBox("create object fail!");
}
hr = CoCreateInstance(CLSID_OCR, NULL, CLSCTX_INPROC_SERVER,
IID_IUnknown, (void **)&(pUnk));
if(!SUCCEEDED(hr))
{
AfxMessageBox("create object fail!");
}
CoUninitialize();
但是在debug的过程中,总是发现执行CoCreateInstance失败,
用error lookup发现是0x80040154 没有注册类别
4)按照我的理解,既然vb可以对这个exe进行引用并进行正常操作,
应该来说就是这个com对象是正常的,而且也是注册了的,
那我碰到的错误又是什么问题呢?
请各位大侠多多赐教,小弟会在线等候,谢谢!!!