100分求解 调用CoCreateInstance返回错误, 在线等~~
a1dao 2006-06-20 05:31:33 我在用MFC编写的窗体程序的OnInitDialog()函数中, 载入一个dll, 代码如下:
HRESULT hr = ::CoCreateInstance(
CLSID_MSPICmdAdapter, // name of dll to load
NULL, // aggregated COM object (none)
CLSCTX_INPROC_SERVER,// use dll
IID_IMSPICmdAdapter, // class to create and object of
(LPVOID *)&CmdManager.iWzd); // returned object pointer
先前为REGDB_E_CLASSNOTREG, 百度后知道COM组件没有注册, 于是手动写代码注册了一下,
代码如下:
HKEY_CLASSES_ROOT\CLSID\{6FC499C3-A7B7-4F71-9089-B708D4BF58FA} = MSPICmdAdapter
HKEY_CLASSES_ROOT\CLSID\{6FC499C3-A7B7-4F71-9089-B708D4BF58FA}\InProcServer32 = C:\WINDOWS\system32\MSPICOM.dll
HKEY_CLASSES_ROOT\CLSID\{6FC499C3-A7B7-4F71-9089-B708D4BF58FA}\InProcServer32\ThreadingModel = Apartment
发现返回值还是fail为CO_E_NOTINITIALIZED, 再把注册表中的注册信息删除再试, 返回值仍是CO_E_NOTINITIALIZED.
哪位大侠知道为什么? 分不够再加, 多谢.