2009-04-27 71 views
3

使用Delphi远程处理接口和Delphi win32应用程序有可能(并且可行)吗?.NET远程处理和Delphi win32

我需要.NET应用程序和Delphi win32应用程序之间的通信,所以.NET远程处理对于管道的另一端来说是本地的。

对于没有第三方库的两端,任何其他解决方案尽可能接近本机?应用程序将在单独的Windows机器上运行。

回答

8

因为它们运行在不同的机器上,所以应该使用网络通信。 SOAP是一种通用的通信格式,可以轻松地制作.Net和Delphi win32。但是SOAP = XML =慢。

对于我公司,我们使用的RemObjects SDK远程框架: http://www.remobjectssdk.com/

很容易做出的接口,对于.NET /德尔福/ PHP/C++ /不管,还支持SOAP,但我们使用二进制生成代码速度格式(!)。

2

Delphi win23和.Net都对COM对象有很好的支持。这是一个值得检查的选项。

+0

我有印象,处理COM和DCOM可能会有点乱,是不是真的值得吗? – Harriv 2009-04-27 10:49:17

+0

哎呀,请不要将COM与DCOM混淆! (和ActiveX)是的,DCOM可能看起来有点混乱,COM +被提出来解决它的一些疼痛。但是,仅限于基本使用类型库和IUnknown继承者的COM是非常干净和快速的。特别是如果你将它看作是一种'相对安全'的方式来预先定义,共享和使用DLL导出。 – 2009-04-27 12:15:38

+0

好的,但是当我们谈论计算机之间的通信时,那么“纯粹”的COM没有帮助? – Harriv 2009-04-28 14:51:01

2

从非.NET的Delphi exe使用远程将是非常痛苦的。如果不知道.NET应用程序正在运行,那么COM互操作将是最简单的答案,因为有COM进程激活等等。事实上,有不同的机器使事情复杂化,但是DCOM存在并且工作(我没有'虽然用.NET和Delphi端点测试过)。

如果.NET应用程序已知运行(也许作为服务),你可以考虑一系列备选方案:

  • 插座
  • HTTP(POX或许通过HTTP,使用HttpListener在.NET服务器)
  • SOAP(可能通过ServiceHost使用WCF在.NET端)
  • 基于文件(网络共享,大概)
0

到目前为止,与我沟通的最佳方式是通过套接字。 现在,如果它是内部的,我更喜欢PIPES或MAPPED内存。