2011-05-18 28 views
6

Bir Delphi projem var ve bir C# uygulaması yazmam gerekiyor, ancak bu Delphi projesinden bazı işlevleri kullanmak istiyorum. Daha önce Delphi'de çalışmamıştım.C# uygulamasından Delphi kodunu nasıl kullanabilirim?

Delphi kodundan bir DLL oluşturabildiğimi ve doğrudan C# içinde kullanabileceğimi buldum. Bunu nasıl yapabilirim? Ya da C# 'ya dönüştürmek için bazı dönüştürme araçları buldum, ama çok da iyi değildi. Peki en iyi yol nedir? DLL veya dönüştürmek? Zaten bir DLL üzerinden önerilen

+2

Eğer delphi kodunuz doğalsa o zaman bir dll'ye ihtiyacınız var ve bazı pinvoklar –

+1

en iyi yol bir dll oluşturmak ve c – RBA

cevap

1

olarak farklı bir çözüm bir COM nesnesi ilgili işlevselliği sarın ve bu kullanmak olacaktır

(eğer stdcall gibi uygun bir çağrı kuralı ile bayrağa fonksiyonları gerekir).

11

İşte çok hızlı bir örnek, Delphi'de nasıl dll yapılacağını ve sonra C# den nasıl çağrılacağını açıklar.

library DllDemo; 

uses 
    Dialogs; 

{$R *.res} 

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

exports 
    SayHello; 

begin 
end. 

bu kodu derlemek ve bir dll dosyası üretecektir: İşte bir fonksiyon sayHello basit dll Delphi kodudur.

şimdi, dll önceki yordamı çağırmak için C# kodu şu şekildedir:

using System.Runtime.InteropServices; 

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

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

Delphi C# proje çıktı dizinde dll üretilen koyun ve C# uygulamayı çalıştırmak.

Şimdi, gereksiniminizi karşılamak için bu basit örneği genişletin.

İlgili konular