3

是否可以(并且可行)将 .NET Remoting 接口与 Delphi win32 应用程序一起使用?

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

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

4

5 回答 5

8

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

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

制作界面非常容易,为 .Net/Delphi/Php/c++/whatever 生成代码,也支持 SOAP,但我们使用二进制格式来提高速度(!)。

于 2009-04-27T09:18:35.047 回答
2

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

于 2009-04-27T08:10:58.937 回答
2

从非.NET Delphi exe 中使用远程处理会非常痛苦。如果不知道 .NET 应用程序正在运行,那么 COM 互操作将是最简单的答案,因为有用于 COM 激活等的进程。存在不同机器的事实使事情变得复杂,但 DCOM 存在并且可以工作(我没有t 使用 .NET 和 Delphi 端点对其进行了测试)。

如果已知 .NET 应用程序正在运行(可能作为服务),您可以考虑一系列替代方案:

  • 插座
  • http(可能是 POX over http,HttpListener在 .NET 服务器上使用)
  • ServiceHostSOAP(可能在 .NET 端使用 WCF )
  • 基于文件(大概是网络共享)
于 2009-04-27T08:27:28.460 回答
1

我发现最近关于这个主题的文章有一个解决方案:http: //www.codeproject.com/Articles/852750/NET-and-Delphi-Inter-Process-Communication-via-Nam

于 2014-12-15T21:17:38.697 回答
0

到目前为止,对我来说与任何平台进行通信的最佳方式是通过 Sockets。现在,如果它是内部的,我更喜欢 PIPES 或 MAPPED 内存。

于 2013-08-21T17:57:12.153 回答