我有一个Delphi项目,需要编写一个C#应用程序,但我想使用一些来自这个Delphi项目的函数。我以前没有使用过Delphi。
我发现可以从Delphi代码创建DLL并直接在C#中使用它。我该怎么做?或者我也找到了一些转换工具转换为C#,但效果不是很好。那么最好的方法是什么?DLL还是转换?
下面是一个非常快速的示例,解释了如何在Delphi中制作dll,然后如何从C#中调用它。 这是一个简单dll的Delphi代码,其中包含一个函数SayHello:
library DllDemo;
uses
Dialogs;
{$R *.res}
Procedure SayHello;StdCall;
Begin
ShowMessage('Hello from Delphi');
End;
exports
SayHello;
begin
end.
编译此代码将生成一个dll文件。
现在,调用dll中先前过程的C#代码如下:
using System.Runtime.InteropServices;
namespace CallDelphiDll
{
class Program
{
static void Main(string[] args)
{
SayHello();
}
[DllImport("DllDemo")]
static extern void SayHello();
}
}
将 Delphi 生成的 dll 放入 C# 项目输出目录并运行 C# 应用程序。
现在,将这个简单的示例扩展以满足您的要求。
如已建议,可以通过 DLL(需要使用适当的调用约定标记函数,如 stdcall)来实现。
另一种解决方案是将相关功能封装在 COM 对象中,并使用该对象。