Использование DLR из неуправляемого кода - PullRequest
5 голосов
/ 16 сентября 2008

Можно ли вызвать управляемый код, в частности IronRuby или IronPython, из неуправляемого кода, такого как C ++ или Delphi?

Например, у нас есть приложение, написанное на Delphi, которое переносится на C # .NET. Мы хотели бы предоставить сценарии Ruby или Python в нашем новом приложении вместо VBSCRIPT. Однако нам нужно было бы предоставить сценарии Ruby / Python в старом приложении Delphi. Можно ли использовать управляемые библиотеки, предоставляемые IronRuby / IronPython из кода Delphi?

Ответы [ 6 ]

8 голосов
/ 16 сентября 2008

Да. Пример Delphi для Win32 здесь: http://interop.managed -vcl.com /
Показывает, как использовать C #, а также сборку Delphi.NET из Delphi для Win32.

6 голосов
/ 16 сентября 2008

Возможно разместить CLR или DLR в неуправляемом коде, поскольку это COM-компонент. С этого момента вы можете загружать управляемые сборки, с которыми вам нужно взаимодействовать.

Из MSDN: Хостинг общеязыковой среды выполнения

3 голосов
/ 01 июня 2009

Почему бы не встроить CPython, который имеет API, предназначенный для использования непосредственно из C / C ++. Вы теряете преимущество в нескольких языках, но, вероятно, получаете простоту.

2 голосов
/ 28 февраля 2010

Я использую Неуправляемый экспорт для создания интерфейса к обработчику сценариев IronPython в C #. Будьте осторожны при использовании .NET-кода из Win32 Delphi - вы должны использовать Set8087CW($133F);, чтобы изменить поведение исключений с плавающей запятой.

2 голосов
/ 16 сентября 2008

Да. Это возможно при использовании Com Callable Wrappers . По сути, вы позволяете своим классам .Net вызываться через COM / ActiveX из кода win32 (Delphi или C ++).

0 голосов
/ 16 сентября 2008

Вы видели Гидру от RemObjects? У меня нет опыта с этим, но из вступления это выглядит актуально.

...