【问题标题】:Delphi out-of-process COM server without forms没有表单的Delphi进程外COM服务器
【发布时间】:2011-11-20 08:36:37
【问题描述】:

我想用 Delphi 构建一个不需要任何可视形式的进程外 COM 服务器。该服务器的主要目的是为其他 Windows 服务提供一些“进程外”处理。 是否可以将 COM 对象放入简单的控制台应用程序中?我希望它(至少)需要某种内部的消息处理循环。 我可以将它放在 Windows 服务中吗?

【问题讨论】:

  • 你试过了吗?什么不起作用?
  • 我已经在标准 GUI 应用程序中成功构建了 COM 服务器。而且,不,我没有在控制台中尝试过。由于我不了解 COM 通信背后的全部内容,我担心控制台应用程序(没有任何句柄、消息队列等)会遗漏一些东西。我用谷歌搜索了这个,只收到了带有 GUI 服务器的示例,没有一个使用控制台作为容器的示例。你觉得值得一试吗?

标签: delphi com automation


【解决方案1】:

可以自己处理消息,但是如果我没记错的话,Windows 中可用的管理工具中的组件服务工具提供了一种方法来选择 ActiveX dll 并拥有它从 dllhost.exe 进程运行,可选择作为 NT 服务。

如果你真的愿意,你可以启动一个普通的 exe 项目并添加 TAutoObject 到它,even to an NT-service project,但是要获得正确的多实例、安全性和并发性,还有一些额外的工作要做。

【讨论】:

  • 感谢 Stijn 的链接。我认为确认 COM 服务器可以放置在 NT 服务中。 (顺便说一句,对于我的目的来说,这听起来是最合理的解决方案。)
  • 用Delphi编写的OPC服务器实际上是COM/DCOM服务器,很少有实现为服务的。所以是的,它也可以用 Delphi 完成。
【解决方案2】:

您可以查看SvCom,了解将 DCOM 服务器作为服务运行的不同之处,以及完全实现它的库,还支持最新的 Delphi 版本。

【讨论】:

    猜你喜欢
    • 2014-02-18
    • 2012-10-10
    • 2012-10-10
    • 2013-01-20
    • 2012-09-06
    • 2011-07-29
    • 2011-01-23
    • 2015-05-23
    • 2011-05-17
    相关资源
    最近更新 更多