0

在 Windows 中,我目前有两个程序如下工作。程序 A 使用一些参数调用程序 B,这导致程序 B 返回一些文本然后退出。程序 A 再次使用其他参数调用程序 B,这导致程序 B 做更多的事情。

当程序 B 启动时,它需要做一些耗时的加载。上述方法意味着程序 B 必须执行两次加载。是否可以只加载程序 B 一次?

例如,程序 A 用一些参数调用程序 B,这导致程序 B 返回一些文本,但程序继续运行。程序 A 再次调用相同的进程,这导致程序 B 做更多的事情。

以上是否可能,也许使用某种 Windows 消息传递?程序 A 是一个 Delphi 应用程序,使用 Windows 的 CreateProcess 方法。Program B 是一个 .NET 应用程序,它根据传入的参数执行各种操作。我知道我们可以通过将 Program B 安装为 Windows 服务来做到这一点,但如果可能的话,我想避免这种情况。

4

2 回答 2

0

这是进程间通信的技术。.NET 有 WCF/webservices 等来做到这一点。该服务可以使用可执行文件(甚至是控制台应用程序)或作为 Windows 服务进行托管。您也可以选择网络服务器 (IIS)。

由于您的程序 B 在 .NET 中,您可以将其作为服务托管并在 Delphi 应用程序中使用。我不知道出于什么目的,您希望避免它作为一项服务。但这肯定会给你一个优势,而且实现起来也相当简单。

即使您使用的是 C/C++ 等,您也可以考虑使用 gSOAP 之类的包装器将程序 B 作为 Web 服务提供服务。

于 2010-07-15T05:26:06.747 回答
0

我们最终创建了具有不可见形式的程序 B,因此它可以连续运行。每当程序 A 需要完成工作时,它就会向程序 B 发送一条 Windows 消息。当程序 A 退出时,它会向程序 B 发送“退出”消息,程序 B 看到该消息并也退出。

于 2010-09-16T22:11:30.427 回答