如何在C#应用程序中使用Delphi代码?

6

我有一个Delphi项目,需要编写一个C#应用程序,但我想使用一些来自这个Delphi项目的函数。我以前没有使用过Delphi。

我发现可以从Delphi代码创建DLL并直接在C#中使用它。我该怎么做?或者我也找到了一些转换工具转换为C#,但效果不是很好。那么最好的方法是什么?DLL还是转换?


2
如果你的 Delphi 代码是本地的,那么你需要一个 DLL 和一些 P/Invoke。 - David Heffernan
1
最好的方式是创建一个 DLL 文件,并在 C# 中导入它。 - RBA
2个回答

12

下面是一个非常快速的示例,解释了如何在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# 应用程序。

现在,将这个简单的示例扩展以满足您的要求。


1

如已建议,可以通过 DLL(需要使用适当的调用约定标记函数,如 stdcall)来实现。

另一种解决方案是将相关功能封装在 COM 对象中,并使用该对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接