为什么远程调用总是不成功?

jinsin 2000-06-18 05:56:00
我用VC的ATL向导(选择了Service(exe))生成了一个DCOM服务器,并加入了一个
Simple Object,然后实施了一个最简单的接口函数:
STDMETHODIMP CCSimple::GetString(int iType, BSTR *lpBstr)
{
// TODO: Add your implementation code here
if(lpBstr )
SysFreeString (*lpBstr);
switch(iType)
{
case 0:
*lpBstr = SysAllocString(L"I am a good man");
break;
default:
*lpBstr = SysAllocString (L"you are a bad man");
break;
}
return S_OK;
}
然后我在客户端如下调用:
CoInitialize(NULL);
IClassFactory *pClassFactory =0;
IUnknown *pIkown=0;
ICSimple *lpSub = 0;
COSERVERINFO cos;
cos.dwReserved1 = 0;
cos.dwReserved2 =0;
cos.pAuthInfo = 0;
cos.pwszName =L"10.143.132.180";
if(CoGetClassObject(CLSID_CSimple, CLSCTX_ALL , &cos,IID_IClassFactory, (void**)&pClassFactory)== S_OK)
::MessageBox(NULL,"ok",NULL,MB_OK);
pClassFactory->CreateInstance (NULL,IID_ICSimple,(void**)&pIkown);
pIkown ->QueryInterface (IID_ICSimple,(void **)&lpSub );
CString str;
str = (LPCTSTR)lpSub ->GetString (0);
MessageBox (str);
结果我在本机上可以成功调用,但在远程机器上CoGetClassObject成功,CreateInstance 却失败,到底是为什么啊?
注明:并没有生成代理DLL,正确设置了安全权限。

...全文
205 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧