Domanda

È possibile chiamare codice gestito, in particolare IronRuby o IronPython da codice non gestito come C++ o Delphi?

Ad esempio, abbiamo un'applicazione scritta in Delphi che viene spostata in C#.NET. Vorremmo fornire script Ruby o Python nella nostra nuova applicazione per sostituire VBSCRIPT.Tuttavia, dovremmo fornire script Ruby/Python nella vecchia applicazione Delphi.È possibile utilizzare le DLL gestite fornite da IronRuby/IronPython dal codice Delphi?

È stato utile?

Soluzione

SÌ.Esempio Delphi per Win32 qui: http://interop.managed-vcl.com/
Mostra come utilizzare un C# e un assembly Delphi.NET da Delphi per Win32.

Altri suggerimenti

È possibile ospitare CLR o DLR in codice non gestito poiché si tratta di un componente COM.Da quel momento puoi caricare gli assembly gestiti con cui devi interagire.

Da MSDN: Ospitare Common Language Runtime

Perché non incorporare invece CPython, che ha un'API destinata a essere utilizzata direttamente da C/C++.Perderai il vantaggio di avere più lingue ma probabilmente guadagnerai in semplicità.

SÌ.Ciò è possibile utilizzando Com Callable Wrapper.Fondamentalmente stai abilitando le tue classi .Net a essere chiamate tramite COM/ActiveX dal tuo codice win32 (Delphi o C++).

Io uso Esportazioni non gestite per creare l'interfaccia per il motore di script IronPython in C#.Fai attenzione quando usi codice .NET da Win32 Delphi: devi usare Set8087CW($133F); per modificare il comportamento delle eccezioni in virgola mobile.

Hai visto Idra da RemObjects?Non ne ho esperienza, ma dall'introduzione sembra rilevante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top