是否可以(并且可行)将 .NET Remoting 接口与 Delphi win32 应用程序一起使用?
我需要 .NET 应用程序和 Delphi win32 应用程序之间的通信,因此 .NET 远程处理对于管道的另一端来说是本机的。
对于没有第三方库的两端,是否有任何其他解决方案,尽可能接近原生?应用程序将在单独的 Windows 机器上运行。
因为它们运行在不同的机器上,你应该使用网络通信。SOAP 是一种通用的通信格式,可以轻松地为 .Net 和 Delphi win32 制作。但是 SOAP = XML = 慢。
对于我的公司,我们使用 RemObjects SDK 远程处理框架: http ://www.remobjectssdk.com/
制作界面非常容易,为 .Net/Delphi/Php/c++/whatever 生成代码,也支持 SOAP,但我们使用二进制格式来提高速度(!)。
Delphi win23 和.Net 都对COM 对象有很好的支持。这是一个值得一试的选择。
从非.NET Delphi exe 中使用远程处理会非常痛苦。如果不知道 .NET 应用程序正在运行,那么 COM 互操作将是最简单的答案,因为有用于 COM 激活等的进程。存在不同机器的事实使事情变得复杂,但 DCOM 存在并且可以工作(我没有t 使用 .NET 和 Delphi 端点对其进行了测试)。
如果已知 .NET 应用程序正在运行(可能作为服务),您可以考虑一系列替代方案:
HttpListener
在 .NET 服务器上使用)ServiceHost
SOAP(可能在 .NET 端使用 WCF )我发现最近关于这个主题的文章有一个解决方案:http: //www.codeproject.com/Articles/852750/NET-and-Delphi-Inter-Process-Communication-via-Nam
到目前为止,对我来说与任何平台进行通信的最佳方式是通过 Sockets。现在,如果它是内部的,我更喜欢 PIPES 或 MAPPED 内存。