::CoInitializeEx(
NULL,
COINIT_APARTMENTTHREADED
);
IaaPtr pPtr1(
_uuidof(aa)
);
pPtr1->add(cc);我用上面这几句调用本机的COM,成功了,
但是我现在想把这个COM组件放到另一台机子上,再调用。但是我发现CoInitializeEx函数中没
有可指定计算机名的参数呀?那怎么办?以前我是用如下格式调用另一台机子的DCOM组件的:
COSERVERINFO ServerInfo={0,L"hzh",NULL,0}; //hzh为远程计算机名
MULTI_QI MultiQi={&IID_IUnknown,NULL,NOERROR};
hr=CoCreateInstanceEx(CLSID_pp2,NULL,CLSCTX_REMOTE_SERVER,&ServerInfo,1,&MultiQi);
NULL,
COINIT_APARTMENTTHREADED
);
IaaPtr pPtr1(
_uuidof(aa)
);
pPtr1->add(cc);我用上面这几句调用本机的COM,成功了,
但是我现在想把这个COM组件放到另一台机子上,再调用。但是我发现CoInitializeEx函数中没
有可指定计算机名的参数呀?那怎么办?以前我是用如下格式调用另一台机子的DCOM组件的:
COSERVERINFO ServerInfo={0,L"hzh",NULL,0}; //hzh为远程计算机名
MULTI_QI MultiQi={&IID_IUnknown,NULL,NOERROR};
hr=CoCreateInstanceEx(CLSID_pp2,NULL,CLSCTX_REMOTE_SERVER,&ServerInfo,1,&MultiQi);
是不是DCOM中不能用智能指针?
在智能指针中,怎么远程调用另一台机子的远程DCOM组件?
不胜感激
IaaPtr pPtr1(
_uuidof(aa)
);
pPtr1->add(cc);
就可以直接调用的呀,
但如果是远程的,哪里可写远程机子名呢?
CoCreateInstanceEx用在没IaaPtr pPtr1这个的时候呀,
楼上大哥可否给个例子,如何调用?
这么多构造函数呢,不是只有一个构造函数的
看能不能行,不过智能指针好像封装CLSID什么的,唉,~~~
COSERVERINFO ServerInfo={0,L"hzh",NULL,0}; //hzh为远程计算机名
MULTI_QI MultiQi={&IID_IUnknown,NULL,NOERROR};
hr=CoCreateInstanceEx(_uuidof(pp),NULL,CLSCTX_REMOTE_SERVER,&ServerInfo,1,&MultiQi); //这边改成(_uuidof(pp)
这步可以呀!hr = pUnknown->QueryInterface(IID_Ipp,(void**)&pp)
这步又不行了,提示IID_Ipp没定义?
把:IID_Ipp改成uuidof(pp)提示找不到接口指针,
智能指针用在DCOM怎么这么难呀?
终于行了,是这样的,以前我是用import .h文件,所以CLSID_aa,IID_aa我必须从DCOM组件的
dll文件拷到客户端程序的前面。
现在用智能指针,import .tlb文件,不要拷CLSID_aa,IID_aa,
只要用_uuidof(pp),_uuidof(Ipp),分别代替CLSID_aa,IID_aa即可,
呵呵,
再次感谢!!!!!!!!!