1  hr = CoCreateInstance(CLSID_MulThd,
NULL ,
CLSCTX_ALL ,
IID_IMulThd ,
(void **)&pIMulThd 
);
if(FAILED(hr))
{
cout<<"create com failed"<<endl;
CoUninitialize();
return 0;
}
居然出错返回 为什么? 不能创建接口有哪些可能? 组件是一个进程内dll .
2  为什么CoInitializeEx()编译提示没有定义? 有包含ole32.dll的。

解决方案 »

  1.   

    Header: Declared in objbase.h.
    Library: Use ole32.lib.所以你需要
    #include "objbase.h"
    #pragma comment(lib, "ole32.lib") //lib文件
      

  2.   

    加上:
    #include "objbase.h"
    #pragma comment(lib, "ole32.lib") //lib文件
    这里还是出错:hr = CoInitializeEx(NULL,COINIT_MULTITHREADED); F:\Workspace\Workspace\ComMulThd\TestCom\TestCom.cpp(40) : error C2065: 'CoInitializeEx' : undeclared identifier
    F:\Workspace\Workspace\ComMulThd\TestCom\TestCom.cpp(40) : error C2065: 'COINIT_MULTITHREADED' : undeclared identifier
    Error executing cl.exe.
      

  3.   

    #include "objbase.h"
    #pragma comment(lib, "ole32.lib") //lib文件
    加到 TestCom.cpp文件的开头处呢