.NET流程到Borland C 流程通信

.NET process to Borland C++ process communication

本文关键字:通信 程通信 Borland NET      更新时间:2023-10-16

早在1999年就开始了一个项目,这需要两个过程之间的通信;一个是VB6应用,另一个是Borland C 过程。VB6设计为COM ActiveX Server EXE(程序外)应用程序,Borland C 应用程序将实例化VB6 COM服务器以及VB6 COM服务器的访问方法和属性。在过去的14年中,这为我们提供了很好的服务,并且非常可靠。注意两个进程在同一家服务器上运行,但是我们设计用于仅在需要时在本地网络上的不同Windows系统上运行的过程。

基本上,Borland C 应用程序可以从几种方法中请求数据并获得响应,并且VB6 COM服务器发射了一个事件,将BSTR发送到Borland C 过程必须作为事件 - 这些事件 - 这些每100ms发送一次,BSTR大小在250至2500字节之间。

我需要开始考虑如何最好地使用更新的VB6 ActiveX COM EXE服务器 - 可能的C#.NET应用程序。我可以与Borland C 过程的开发人员进行良好的访问和沟通,因此,如果需要,方程式也很容易更改。

Borland C 开发人员正在使用相当古老的版本 - 我相信Borland 7?至少这比VB6要多得多,我必须假设他至少不会在可预见的将来升级。

这是当前的一些设计决策:如果消息丢失了,我们不需要持久性或消息可靠性(他可以执行另一个请求,或者在事件中从COM服务器发射到Borland客户的下一个消息100ms之后可以)。这两个过程都必须影响另一个过程 - 这就是为什么我们选择COM EXE外部服务器服务器的原因。Borland C 客户端将不考虑任何类型的进程,甚至是DLL包装器。

这是我考虑的前进:

  1. 使用VS2012 C 的ATL COM EXE服务器,可精确复制旧的VB6 COM EXE服务器;我真的希望留下COM的复杂性,并转移到一种新的简单的过程方法来处理交流的方法中。(我不觉得这是向前迈进的,听起来很粗糙,可以维护,调试和添加新功能吗?)

  2. Zeromq我写过了其他几个使用此功能的C#应用程序,我真的很喜欢 - 但是我不知道是否有borland c 的Zeromq客户端(Can Borland C 开发人员可以使用C/C Zeromq库?)

  3. redis-我使用pub/sub撰写了两个C#应用程序,我真的很喜欢 - 几个问题会在Windows 7/8上发布Redis的"生产"版本,我可以找到Borland C 的Redis客户端,有一个吗?

  4. ? - 在上述选择上寻找建议或更好的建议?

谢谢

重大编辑以下问题:如果您启动了全新的C#.NET应用程序和全新的Borland C 应用程序,并且这两个应用程序需要在Windows 7/8/9上运行,并且他们必须能够将数据发送到彼此 - 您将使用什么技术来处理处理通信?

谢谢尼尔·戴维斯

c#在隐藏com的复杂性的工作几乎与vb6一样好。因此,在C#中实现相同的com接口应在更少的时间内给出#1的优点。