多个客户EXE怎么共享一个对象的实例?

ColderRain 2003-11-10 03:24:55
我做了一个EXE服务器,请问多个客户EXE怎么共享同一个进程外对象的实例?
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ColderRain 2003-11-11
  • 打赏
  • 举报
回复
TO: Onega
你的方式行不通。

// g_obj 为服务器内的全局实例,是要被共享的内部对象

DWORD dwReg;
HRESULT hr;

IMFCObj* pObj = NULL;
hr = g_obj.QueryInterface(IID_IMFCObj, (void**)&pObj);
if (SUCCEEDED(hr))
{
TRACE("query ok\n");
}

pObj->AddRef();
hr = ::CoRegisterClassObject(CLSID_MFCObj, pObj,
CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &dwReg);
pObj->Release();
if (SUCCEEDED(hr))
{
TRACE("reg ok\n");
}

注册以后,客户端连实例都不能创建了。
Onega 2003-11-10
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2435/2435024.xml?temp=.448147
Onega 2003-11-10
  • 打赏
  • 举报
回复
when you regiser exe COM component(CoRegisterClassObject), use REGCLS_MULTIPLEUSE flag.
look up msdn for more details
donghaima 2003-11-10
  • 打赏
  • 举报
回复
我只知道VB编的COM,把参数Thread Pool设置为1,它就是多个客户共享的一个进程外COM的实例的.
哪怕这COM是作为EXE正在被运行.
而MFC写COM是每次被请求,就生成一个实例的.不管前一COM是以COM或EXE执行的.
我想知道,共享一个实例为什么呢.

ColderRain 2003-11-10
  • 打赏
  • 举报
回复
其实题目应该是“多个客户EXE怎么共享一个进程外COM组件的实例?”

TO: neuboy
能不能详细一点?
neuboy 2003-11-10
  • 打赏
  • 举报
回复
1.共享内存

2.利用com组件,创建进程外组件

3.管道

3,245

社区成员

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

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