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

如何使用C#应用程序中的Delphi代码?,c#,delphi,C#,Delphi,我有一个Delphi项目,我需要编写一个C#应用程序,但我想使用这个Delphi项目中的一些函数。我以前没有在德尔福工作过 我发现我可以从Delphi代码创建一个DLL,并在C#中直接使用它。我该怎么做?或者我还找到了一些转换工具来转换成C#,但效果不太好。那么最好的方法是什么呢?DLL或convert?如通过DLL建议的那样(您需要使用适当的调用约定(如stdcall)标记函数) 另一种解决方案是将相关功能包装在COM对象中,并使用它。这里有一个非常快速的示例,说明如何在Delphi中创建dl

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


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

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


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

这里有一个非常快速的示例,说明如何在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.
编译此代码,它将生成一个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#应用程序


现在,展开这个简单的示例以满足您的需求。

如果您的delphi代码是本机代码,那么您将需要一个dll和一些Pinvokes。最好的方法是创建一个dll并在c中导入它#