2011-05-18 34 views
6

Tengo un proyecto Delphi, y necesito escribir una aplicación C#, pero quiero usar algunas funciones de este proyecto Delphi. No he trabajado en Delphi antes.¿Cómo puedo usar el código Delphi desde una aplicación C#?

Descubrí que puedo crear una DLL desde el código Delphi y usarla directamente en C#. ¿Cómo puedo hacer eso? O también encontré algunas herramientas de conversión para convertir a C#, pero no fue tan bueno. Entonces, ¿cuál es la mejor manera? DLL o convertir?

+2

si su código delphi es nativo, entonces necesitará un dll y algunas pinzas –

+1

la mejor manera es crear un dll e importarlo en C# – RBA

Respuesta

1

Como ya se ha sugerido a través de una DLL (necesitas marcar las funciones con una convención de llamada apropiada como stdcall)

Una solución sería diferente para envolver la funcionalidad relevante en un objeto COM, y usar eso.

11

Aquí hay una muestra muy rápida que explica cómo hacer dll en Delphi y cómo llamarlo desde C#. Aquí es código de Delphi de sencilla DLL con una función SayHello:

library DllDemo; 

uses 
    Dialogs; 

{$R *.res} 

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

exports 
    SayHello; 

begin 
end. 

compilar este código y se producirá un archivo DLL.

ahora, el código C# para llamar al procedimiento anterior en el archivo DLL es así:

using System.Runtime.InteropServices; 

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

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

Coloque el Delphi producido DLL en el directorio de salida proyecto de C# y ejecutar la aplicación C#.

Ahora, expanda esta muestra simple para lograr su requerimiento.

Cuestiones relacionadas