簡體   English   中英

如何使用C#應用程序中的Delphi代碼?

[英]How can I use Delphi code from a C# application?

我有一個Delphi項目,我需要編寫一個C#應用程序,但我想使用這個Delphi項目中的一些函數。 我之前沒有在Delphi工作過。

我發現我可以從Delphi代碼創建一個DLL並直接在C#中使用它。 我怎樣才能做到這一點? 或者我也發現了一些轉換為C#的轉換工具,但它並不是那么好。 那么最好的方法是什么? DLL還是轉換?

這是一個非常快速的示例,解釋了如何在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#應用程序。

現在,擴展這個簡單的示例以滿足您的要求。

正如已經通過DLL建議的那樣(你需要使用適當的調用約定來標記函數,比如stdcall)

另一種解決方案是將相關功能包裝在COM對象中,並使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM