Совместимость Delphi с .NET - PullRequest
       34

Совместимость Delphi с .NET

6 голосов
/ 27 февраля 2009

В настоящее время у меня есть кодовая база кода delphi (win32). Я хочу расширить новые функциональные возможности, однако мои знания в .NET (C #), и я хотел бы сохранить существующую кодовую базу и добавить новые функциональные возможности в .NET.

Что, если таковые имеются, мои варианты (для взаимодействия Delphi и .NET)?

Спасибо!

Ответы [ 5 ]

7 голосов
/ 27 февраля 2009

Я не использовал его, но посмотрите RemObject Hydra .

Hydra позволяет легко смешивать и сочетать нативный Delphi и управляемый .NET код в единое приложение, позволяющее разработчики, чтобы выбрать лучший набор технологии для их нужд.

По сути, вы можете встраивать визуальный и невизуальный код .NET в ваше приложение Delphi и работать с ним, как если бы он был родным для Delphi. У них есть бесплатная пробная версия, и прямо сейчас проводится конкурс, где вы можете выиграть бесплатную копию, просмотрев бесплатную пробную версию .

Помимо этого, вы можете использовать .NET через COM в Delphi . Сборка .NET может быть на C #, Prism, VB.NET или на любом языке .NET.

7 голосов
/ 27 февраля 2009

Есть несколько вариантов:

  • Можно создать и предоставить класс .NET в сборке в качестве элемента управления COM (взаимодействия), чтобы его можно было использовать в Delphi.

  • Delphi некоторое время был .Net (но это был не самый яркий час Delphi), поэтому, например, в Delphi 2006 вы можете использовать Delphi в качестве языка .Net. Однако, как и в случае любого другого изменения версии Delphi, существуют несовместимости с более старым исходным кодом.

EDIT Чтобы сделать первый метод, вам нужно создать свою сборку с нужными вам классами / функциями на языке .NET и скомпилировать ее. Вы должны получить DLL.

В Delphi в меню «Компонент» выберите «Импорт компонента» (он должен быть ниже «Установить пакеты»). Вы получите волшебника, у которого должно быть 3 варианта радио

  • Библиотека типов импорта
  • Импорт элемента управления ActiveX
  • Импорт сборки .NET

Выберите третью, и вы увидите список глобально зарегистрированных сборок. Поскольку ваша сборка - это просто анонимная DLL, нажмите кнопку «Добавить» внизу и в открывшемся диалоговом окне выберите DLL.

На следующей странице вам будет предложено ввести информацию о палитре. Здесь у вас есть выбор - укажите папку с вашими проектами и оставьте флажок «Generate Component Wrappers» снятым, чтобы добавить сборку только в ваш проект. Другой вариант - поместить его в lib или другую глобальную папку и проверить параметр оболочки, который добавит его в палитру инструментов для всех проектов.

На последнем экране появится вопрос, хотите ли вы добавить его в текущий проект (зависит от того, где вы добавили его: глобально или только в один проект).

Когда все будет сделано, вы сможете создавать экземпляры вашего .Net-класса в Delphi примерно так:

var MyCSharpClassInstance: TMyCSharpClassProvider;
begin
     MyCSharpClassInstance:=CoTMyCSharpClassProvider.Create;
     …
     MyCSharpClassInstance.Free;
End
2 голосов
/ 27 февраля 2009

Вы можете скомпилировать код Delphi для .NET, используя последнюю версию Delphi Prism (т.е. 2009) Можно сделать сборку .NET из файлов Delphi, и они регулярно расширяют эти классы, используя C #.

Если ваши классы запечатаны, вы также можете использовать методы расширения.

0 голосов
/ 27 февраля 2009

Вы можете посмотреть здесь , они производят компилятор для Delphi.Net. Это может быть путь вперед.

0 голосов
/ 27 февраля 2009

Я считаю, что Delphi, как и несколько версий назад, имеет компиляцию .NET.

http://www.codegear.com/products/bds2006

"Developer Studio 2006 включает полную поддержку RAD для C и C # в дополнение к Delphi Win32 и Delphi для языков программирования .NET."

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...