Совместимость Delphi с.NET
У меня в настоящее время есть кодовая база кода delphi (win32). Я хочу расширить новые функциональные возможности, однако мои знания в.NET (C#), и я хотел бы сохранить существующую кодовую базу и добавить новые функциональные возможности в.NET.
Что, если таковые имеются, мои варианты (для взаимодействия Delphi и.NET)?
Спасибо!
5 ответов
Я не использовал его, но посмотрите RemObject Hydra.
Hydra упрощает смешивание и сопоставление исходного кода Delphi и управляемого кода.NET в одном приложении, что позволяет разработчикам выбирать лучший набор технологий для своих нужд.
По сути, вы можете встраивать визуальный и невизуальный код.NET в ваше приложение Delphi и работать с ним так же, как и с родным Delphi. У них есть бесплатная пробная версия, и прямо сейчас проходит конкурс, где вы можете выиграть бесплатную копию, просмотрев бесплатную пробную версию.
Помимо этого, вы можете использовать .NET через COM в Delphi. Сборка.NET может быть на C#, Prism, VB.NET или на любом языке.NET.
Есть несколько вариантов:
Можно создать и предоставить класс.NET в сборке в качестве COM-элемента управления (взаимодействия), чтобы его можно было использовать в Delphi.
Некоторое время Delphi был.Net (но это был не самый яркий час Delphi), поэтому, например, в Delphi 2006 вы можете использовать Delphi в качестве языка.Net. Однако, как и, если не больше, при любом другом изменении версии Delphi, существуют несовместимости с более старым исходным кодом.
РЕДАКТИРОВАТЬ Чтобы сделать первый метод, вы захотите создать свою сборку с нужными вам классами / функциями на языке.NET и скомпилировать ее. Вы должны в конечном итоге с DLL.
В Delphi в меню "Компонент" выберите "Импорт компонента" (он должен быть ниже "Установить пакеты"). Вы получите мастера, который должен иметь 3 варианта радио
- Библиотека типов импорта
- Импортировать элемент управления ActiveX
- Импорт сборки.NET
Выберите третий, и вы увидите список глобально зарегистрированных сборок. Поскольку ваша сборка является просто анонимной DLL, нажмите кнопку "Добавить" внизу и в открывшемся диалоговом окне выберите DLL.
На следующей странице вам будет предложено ввести информацию о палитре. Здесь у вас есть выбор - укажите папку с вашими проектами и оставьте флажок "Generate Component Wrappers" снятым, чтобы добавить сборку только в ваш проект. Другой вариант - поместить его в библиотеку lib или другую глобальную папку и выбрать параметр оболочки, который добавит его в палитру инструментов для всех проектов.
На последнем экране появится вопрос, хотите ли вы добавить его в текущий проект (зависит от того, хотите ли вы добавить его глобально или только в один проект).
Когда все будет сделано, вы сможете создавать экземпляры вашего.Net-класса в Delphi примерно так:
var MyCSharpClassInstance: TMyCSharpClassProvider;
begin
MyCSharpClassInstance:=CoTMyCSharpClassProvider.Create;
…
MyCSharpClassInstance.Free;
End
Вы можете скомпилировать свой код Delphi для.NET, используя последнюю версию Delphi Prism (например, 2009). Можно создать сборку.NET из файлов Delphi, и они расширяют эти классы, используя регулярно C#.
Если ваши классы запечатаны, вы также можете использовать методы расширения.
Я считаю, что Delphi, как и несколько версий назад, имеет компиляцию.NET.
http://www.codegear.com/products/bds2006
"Developer Studio 2006 включает полную поддержку RAD для C и C# в дополнение к Delphi Win32 и Delphi для языков программирования.NET".
Вы можете посмотреть здесь, они производят компилятор для Delphi.Net. Это может быть путь вперед.