我的 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/