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?如果我能测试一下就好了
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库类型