c++ - DLL 中的 outproc COM 服务器

标签 c++ winapi com

我的 DLL 中有一个 COM 对象,我想在进程外公开它。我知道进程外 COM 对象只能在可执行文件中使用。我想知道是否可以使用 dllhost.exe 或 runddl32.exe 之类的东西来托管我的 DLL 并将我的对象公开为进程外?我读了一些关于代理人的文章,有人能提供一些关于我如何做到这一点的信息吗?

我的最终目标是拥有一个进程外 COM 对象,托管在 DLL 中(托管在使用 LoadLibrary 等的可执行文件中)。此 COM 对象将利用 ATL 中可用的单例类工厂。它将是一个将数据共享给连接到它的所有进程的类。

谢谢。

最佳答案

选项 1 - use surrogate activation .

选项 2 - 使用 COM+ 控制面板 -> 管理工具 -> 组件服务 - 创建一个“服务器”COM+ 应用程序并在那里添加你的类。

无论如何,您需要为您的对象实现的接口(interface)编码东西 - 代理/ stub 对或(如果所有接口(interface)都是自动化兼容的)类型库。

关于c++ - DLL 中的 outproc COM 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5425215/

相关文章:

c++ - 错误 : invalid conversion from 'int (*)()' to 'long unsigned int'

c++ - 调用 MoveWindow 后 CComboBox 自动选择文本

delphi - 我如何将 WNDPROC 转换为 TWndMethod

c# - 通过 Windows 进程句柄访问 COM 对象

multithreading - COM接口(interface): Using STA instead of MTA

c++ - 如何在 wxWidgets 中将键盘焦点设置为 NULL 窗口?

c++ - IOUserClientMethodArguments 完成值始终为 NULL

c++ - 以不同用户身份运行的两个 exe 如何使用 COM(组件对象模型)进行通信

c++ - 矩阵模板类中的重载运算符* =和Operator +

c++ - 为什么模板仿函数作为值传递而不是转发引用