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

Wal*_*eed 6 c# delphi

我有一个Delphi项目,我需要编写一个C#应用程序,但我想使用这个Delphi项目中的一些函数.我之前没有在Delphi工作过.

我发现我可以从Delphi代码创建一个DLL并直接在C#中使用它.我怎样才能做到这一点?或者我也发现了一些转换为C#的转换工具,但它并不是那么好.那么最好的方法是什么?DLL还是转换?

Iss*_*Ali 11

这是一个非常快速的示例,解释了如何在Delphi中创建dll,然后如何从C#调用它.这里是带有一个函数SayHello的简单dll的Delphi代码:

library DllDemo;

uses
  Dialogs;

{$R *.res}

Procedure SayHello;StdCall;
Begin
  ShowMessage('Hello from Delphi');
End;

exports
  SayHello;

begin
end.
Run Code Online (Sandbox Code Playgroud)

编译此代码,它将生成一个DLL文件.

现在,在dll中调用上一个过程的C#代码是这样的:

using System.Runtime.InteropServices;

namespace CallDelphiDll
{
  class Program
  {
    static void Main(string[] args)
    {
      SayHello();
    }

    [DllImport("DllDemo")]
    static extern void SayHello();
  }
}
Run Code Online (Sandbox Code Playgroud)

将Delphi生成的dll放在C#项目输出目录中并运行C#应用程序.

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


Mar*_*ort 1

正如通过 DLL 已经建议的那样(您需要使用适当的调用约定(如 stdcall)来标记函数)

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