2011-05-18 62 views
6

我有一個Delphi項目,我需要編寫一個C#應用程序,但我想使用這個Delphi項目的一些功能。我以前從未在德爾福工作過。如何使用C#應用程序中的Delphi代碼?

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

+2

如果你的delphi代碼是本地的,那麼你需要一個DLL和一些pinvokes – 2011-05-18 09:35:49

+1

最好的方法是創建一個DLL並將其導入到C# – RBA 2011-05-18 11:03:56

回答

1

隨着(需要標記的功能與像STDCALL適當的調用約定)

一個不同的解決將是一個COM對象來包裝的相關功能,並使用它。

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. 

編譯的代碼,它會產生一個dll文件。

現在,C#代碼調用DLL中的前面的過程是這樣的:

using System.Runtime.InteropServices; 

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

    [DllImport("DllDemo")] 
    static extern void SayHello(); 
    } 
} 

把德爾福在C#項目輸出目錄中生成的dll和運行C#應用程序。

現在,展開這個簡單的示例來實現您的要求。

相關問題