【发布时间】:2012-08-08 16:19:08
【问题描述】:
我继承了一个应用程序,该应用程序由一堆使用 COM 和 COleDispatchDriver 进行通信的 exe 文件组成。有一个主要的“客户端”exe,以及几个提供服务的“服务器”可执行文件。
此时,客户端进程使用 COleDispatchDriver::CreateDispatch() 启动服务器,将解析为类 ID 的应用程序 ID 传递。这样做的问题是它依赖于正在注册的 COM 服务器(一个潜在的故障点)。如果机器上有多个不同版本的 COM 服务器 exe,也可能会出现问题。
我想让它不那么脆弱,而不必在此时完全重新架构应用程序。有没有办法保持相同的通信机制,但显式启动特定的服务器应用程序?客户端知道服务器应用程序在哪里以及它们被称为什么(它们与客户端在同一目录中)。
【问题讨论】: