Question

Est-il possible d'appeler du code géré, en particulier IronRuby ou IronPython, à partir de code non personnalisé tel que C ++ ou Delphi?

Par exemple, nous avons une application écrite en Delphi qui est déplacée vers C # .NET. Nous souhaitons fournir des scripts Ruby ou Python dans notre nouvelle application pour remplacer VBSCRIPT. Cependant, nous aurions besoin de fournir des scripts Ruby / Python dans l'ancienne application Delphi. Est-il possible d'utiliser les dll gérées fournies par IronRuby / IronPython à partir de code Delphi?

Était-ce utile?

La solution

Oui. Exemple Delphi pour Win32 ici: http://interop.managed-vcl.com/
Montre comment utiliser un assemblage C # et un assemblage Delphi.NET de Delphi pour Win32.

Autres conseils

Il est possible d’héberger le CLR ou le DLR en code non géré car il s’agit d’un composant COM. À partir de ce moment, vous pouvez charger les assemblys gérés avec lesquels vous devez interagir.

A partir de MSDN: Hébergement du Common Language Runtime

Pourquoi ne pas intégrer CPython à la place, avec une API destinée à être utilisée directement à partir de C / C ++. Vous perdez l'avantage des langues multiples mais vous gagnez probablement en simplicité.

Oui. Cela est possible à l'aide de Enveloppeurs Callable . En gros, vous permettez à vos classes .Net d’être appelées via COM / ActiveX à partir de votre code win32 (Delphi ou C ++).

J'utilise Exportations non gérées pour créer une interface avec le moteur de script IronPython en C #. Soyez prudent lorsque vous utilisez du code .NET à partir de Win32 Delphi - vous devez utiliser Set8087CW ($ 133F); pour modifier le comportement des exceptions en virgule flottante.

Avez-vous vu Hydra de RemObjects? Je n'ai aucune expérience avec cela, mais de l'intro, il semble pertinent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top