1

我希望编写一个 Win32 可执行文件(在 C++ 中),它在启动时执行其所有 COM 注册,以便客户端应用程序可以通过 COM 访问其对象。当可执行文件终止时,它应该向 COM 注销。这种事情是否可能,如果可能,涉及的步骤是什么?整个下午我一直在狂热地搜索,但没有真正找到任何答案。大多数解决方案都需要预先注册(例如,通过 /register 开关)。谢谢

4

2 回答 2

1

我怀疑CoRegisterClassObjectCoRevokeClassObject是您正在寻找的功能。您可以在此处找到更多信息。

于 2012-11-29T16:50:19.080 回答
0

无论是进程内还是进程外,COM 服务器注册都没有什么魔力。注册意味着写入注册表取消注册意味着删除注册表项。

通常的 EXE COM 服务器读取命令行参数来处理安装/卸载请求并提供单独的子例程或执行路径,但您可以在每次执行中自由地包含安装/卸载过程。

WinMain()
{
  Install()
  CoRegisterClassObject();
  .. Message Loop ..
  CoRevoveClassOBject();
  Uninstall();
}
于 2012-11-29T17:36:12.103 回答