我调用CoCreateInstance方法,可是返回值总是负值,这是怎么回事? 我建了两个ATL工程,在工程A里用CoCreateInstance或CoGetClassObject想生成工程B中的一个COM对象,可是返回值总是一个负值这是怎么回事呀,高手帮忙呀 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不对不对,写错了工程B是一个MFC的exe工程,工程A才是一个ATL的工程 :)) 一定是没有注册的缘故regsvr32.exe 偶初次接触comltqin() 大侠能否说的详细一些谢谢:) 你在watch窗口中查看返回值,后面加上,hr,比如你的返回值是hRet,就用hRet,hr,可以看到返回值的意义,一般是你的com库没有初始化 CoInitialize(NULL); //进入COM的套间............ //你的COM的使用CoUninitialize(); //不用COM了,退出套间 呵呵,初始化com库,用mfc的话,就在程序一开始加上AfxOleInit();就行了 使用com之前要调用::CoInitialize(NULL),用完了之后要调用CoUninitialize(),也可以用AfxOleInit(); 偶要疯掉了偶按照各位大侠指点改了程序,可是情况依旧偶的客户端代码是这样的: HRESULT hr=::CoInitialize(NULL); IXMLFile * pSimpleMath=NULL; IDispatch * pDispatch=NULL; IClassFactory * pClassFactory=NULL; hr=::CoGetClassObject( // 用CoCreateInstance结果一样 CLSID_XMLFile, CLSCTX_INPROC, NULL, IID_IXMLFile, (void**)&pClassFactory); if ( FAILED(hr) ) return; pClassFactory->CreateInstance(NULL,IID_IXMLFile,(void**)&pSimpleMath); pSimpleMath->QueryInterface(IID_IDispatch,(void**)&pDispatch); if(SUCCEEDED(hr)) { } pSimpleMath->Release(); pDispatch->Release(); ::CoUninitialize(); return ;大侠们帮偶看看客户端调用有没有问题?如果没有问题,偶就准备仔细检查com服务器端的问题了多谢了 &_& CtreeCtr控件的应用 C++中有没有类似Java中的Map? 如何销毁以下创建的窗体 列表控件设置选项焦点的问题?着急~~~~~ VC的DLL如何在C#中使用? 如何把CString 对象转化为unsigned short str[6000] 如何获取data link的数据链接字符串? 如何改变标题栏的文字 2.读取当前文件夹下文件列表问题?(如何判断当前读取的是文件还是文件夹) 请问下Hook API不能完全推出的问题 help!急! 如何把一个recordset存放在内存的一个连续缓冲区中,同时,又能够从这个缓冲区重新构造一个recordset
工程B是一个MFC的exe工程,工程A才是一个ATL的工程 :))
regsvr32.exe
ltqin() 大侠能否说的详细一些
谢谢:)
CoUninitialize(); //不用COM了,退出套间
偶按照各位大侠指点改了程序,可是情况依旧
偶的客户端代码是这样的:
HRESULT hr=::CoInitialize(NULL);
IXMLFile * pSimpleMath=NULL;
IDispatch * pDispatch=NULL;
IClassFactory * pClassFactory=NULL; hr=::CoGetClassObject( // 用CoCreateInstance结果一样
CLSID_XMLFile,
CLSCTX_INPROC,
NULL,
IID_IXMLFile,
(void**)&pClassFactory); if ( FAILED(hr) )
return; pClassFactory->CreateInstance(NULL,IID_IXMLFile,(void**)&pSimpleMath);
pSimpleMath->QueryInterface(IID_IDispatch,(void**)&pDispatch);
if(SUCCEEDED(hr))
{
}
pSimpleMath->Release();
pDispatch->Release();
::CoUninitialize();
return ;大侠们帮偶看看客户端调用有没有问题?
如果没有问题,偶就准备仔细检查com服务器端的问题了
多谢了 &_&