2008-09-16 9 views
5

¿Es posible llamar al código administrado, específicamente IronRuby o IronPython, desde un código no administrado como C++ o Delphi?Usando DLR desde el código no administrado

Por ejemplo, tenemos una aplicación escrita en Delphi que se está moviendo a C# .NET. Nos gustaría proporcionar scripts de Ruby o Python en nuestra nueva aplicación para reemplazar a VBSCRIPT. Sin embargo, necesitaríamos proporcionar secuencias de comandos de Ruby/Python en la antigua aplicación Delphi. ¿Es posible utilizar los dlls administrados proporcionados por IronRuby/IronPython desde el código Delphi?

Respuesta

8

Sí. Ejemplo de Delphi para Win32 aquí: http://interop.managed-vcl.com/
Muestra cómo usar un C# así como un ensamblaje Delphi.NET de Delphi para Win32.

2

Sí. Eso es posible usando Com Callable Wrappers. Básicamente está permitiendo que sus clases .Net sean llamadas a través de COM/ActiveX desde su código win32 (Delphi o C++).

6

Es posible alojar CLR o DLR en código no administrado ya que es un componente COM. Desde ese punto, puede cargar los ensamblados administrados con los que necesita interactuar.

De MSDN: Hosting the Common Language Runtime

0

¿Has visto Hydra de RemObjects? No tengo experiencia con eso, pero desde la introducción, parece relevante.

3

Por qué no incrustar CPython en su lugar, que tiene una API destinada a ser utilizada directamente desde C/C++. Pierdes la ventaja del lenguaje múltiple pero probablemente obtienes simplicidad.

2

Uso Unmanaged Exports a la interfaz creada para el motor de script IronPython en C#. Tenga cuidado cuando use el código .NET de Win32 Delphi; debe usar Set8087CW($133F); para cambiar el comportamiento de excepción de coma flotante.

Cuestiones relacionadas