Call .NET DLL from Delphi

本文关键字:Delphi from DLL NET Call | 更新日期: 2023-09-27 18:06:35

作为我第一次作为学生雇员编程,我必须用c#创建一个DLL。. NET,可从Delphi调用。

我读到过,由于Delphi是本机代码,而。net是托管的,所以这并不容易。

我也读过Robert Giesecke的《未管理的出口》。这可能是解决方案吗?

因为我的机器上没有Delphi (Delphi不是免费的),所以我不能自己测试。

另外,当我实现非托管导出时,我的数据类型会有问题吗?

最后但并非最不重要的是,是否有一种语言我可以使用,将有相同的问题作为Delphi加载DLL?如果我能测试一下就好了

Call .NET DLL from Delphi

UnmanagedExports是一个选项。它确实很好用。其他选项包括:

  • 使用COM公开功能
  • 通过c++/CLI混合模式程序集公开功能。
  • 从Delphi代码中托管CLR

最后一个选项不是很容易处理。别想那么做。

除非你已经是这个领域的专家,否则你几乎肯定会遇到互操作数据类型的问题。

你当然可以用FreePascal测试一下。很有可能你在FreePascal中编写的代码会消耗你的。net程序集,然后在Delphi中使用完全相同的代码。即使你不得不对它做一些改变,你学到的教训也会是完全一样的。

你可以使你的。net DLL作为Com可见。点击此链接。

Delphi可以毫无问题地加载Com对象。这在理论上,我没有具体的代码示例,但您可以尝试不同的教程,他们实际上解释相同的。

我不知道数据类型,但COM总是尝试转换为基本类型(双精度,浮点数到十进制,数字到整数,复杂对象到动态对象)。

您可以在http://dotnetruntimelibraryfordelphi.sourceforge.net/

中使用。net Runtime Library for Delphi

运行库允许你托管和访问。net库类型