Импорт .net DLL в Delphi 6 теряет информацию - PullRequest
4 голосов
/ 20 марта 2011

У меня есть .net dll, который я мог импортировать в Delphi 6. Но он теряет некоторую информацию.

У меня есть демонстрационное приложение на VB.net, чтобы использовать эту dll, которая показывает 2 интерфейса, называемые IRedeemTransactionItemBundleи ITransactionItemBundle.В Visual Studio 2008 я мог видеть, что ITransactionItemBundle является базовым типом IRedeemTransactionItemBundle.Поэтому, когда я объявляю переменную типа IRedeemTransactionItemBundle, я могу получить доступ ко всем свойствам обоих интерфейсов.

Но когда я импортирую dll в Delphi 6, я могу видеть и часть объявления IRedeemTransactionItemBundle и ITransactionItemBundle,Но нет информации, показывающей, что ITransactionItemBundle является базовым типом IRedeemTransactionItemBundle.Также, когда я объявляю переменную типа IRedeemTransactionItemBundle в Delphi, я не могу получить доступ к свойствам ITransactionItemBundle (базовый тип).

Когда я пытался зарегистрировать библиотеку в редакторе tlb, установивБазовый тип от IRedeemTransactionItemBundle до ITransactionItemBundle, я получаю сообщение об ошибке: «Родительский интерфейс уже имеет члена с идентификатором: 1610743808».Я мог видеть, что свойства обоих интерфейсов имеют одинаковый идентификатор в редакторе tlb.

Я пытался импортировать ту же самую DLL, используя Delphi 7.Но не поможет.

Это проблема с Delphi?Кто-нибудь из вас сталкивался с такой проблемой при импорте, пожалуйста, подумайте?

Ответы [ 2 ]

0 голосов
/ 03 января 2012

Помимо использования COM-взаимодействия, вы можете сделать неуправляемый экспорт . Проще говоря, вам нужна новая конкретная версия .net dll.

Пожалуйста, перейдите к этому сообщению для получения подробной информации о технике использования Delphi.

0 голосов
/ 27 июля 2011

Я бы посоветовал вам сделать COM видимой оболочкой для DLL в C # или VB.NET, которая будет импортировать необходимую функциональность так, чтобы Delphi мог правильно взаимодействовать.

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