2009-04-27 56 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內存。