Форум: "Прочее";
Текущий архив: 2013.11.17;
Скачать: [xml.tar.bz2];
Вниз.Net из VCL Найти похожие ветки
← →
robt5 (2013-05-31 22:27) [0]можно ли гипотетически, из обычного дельфокода использовать .Netовские классы и прочую лабуду?
через СОМобъекты например... ? или на крайняк dllшку написаную в .Net вызывать ?
← →
Rouse_ © (2013-06-01 00:17) [1]Конечно можно.
← →
Пит (2013-06-01 00:37) [2]мне, кстати, тоже интересно.
Если отбросить .NET поддержку в дельфи (допустим, работаем в Delphi 7) - можно ли как-то использовать DLL, написанную в рамках .NET (так сказать сборку / assembly). Интересно, как это выглядит, если можно? )
← →
Пит (2013-06-01 00:38) [3]а вообще COM немножко несовместим с .NET, поэтому есть специальная технология "переходник"... я её использовал, но что-то все забыл уже нафиг.
По-моему, смысл был в том, что делаешь .NET класс (я на VS.NET писал), а потом какая-то утилита делает прослойку для него, которую можно через COM использовать... блин... год прошел и всё забыл...
← →
Rouse_ © (2013-06-01 00:43) [4]Любой файл, выполненный в виде PE образа можно загрузить и использовать.
Язык разработки тут роль не играет, в отличие от требуемого окружения.
← →
Пит (2013-06-01 01:06) [5]а .NET библиотеки они имеют PE структуру? Я вот не уверен... но да ладно.
Розыч, ты можешь привести код вызова .NET библиотеки (какой-нибудь её функции) из "нативного" дельфи кода?
← →
Rouse_ © (2013-06-01 01:21) [6]
> Пит (01.06.13 01:06) [5]
> а .NET библиотеки они имеют PE структуру?
Тут это... дело в том что загрузчик умеет работать только с PE файлами.
> Розыч, ты можешь привести код вызова .NET библиотеки (какой-
> нибудь её функции) из "нативного" дельфи кода?
эмм... LoadLibrary + GetProcAddr ну и сам вызов. Как-то так.
← →
Пит (2013-06-01 01:43) [7]Розыч, ну ты опять в роли Капитана, ты тока не обижайся.
Вопросы на мой взгляд очевидные:
1) я вот объявил в VS 2010 под .NET функцию в классе (а как известно, объявлять функции вне класса нельзя): TMyClass.Func - какое имя она будет иметь в DLL?
2) поскольку объявления внутри _исключительно_ классов - нет ли каких то нюансов при вызове из "нативного" кода дельфи?!
3) что с типами данных? У .NET известно - автоматическая сборка мусора - не накладывает ли и это некие нюансы?
← →
Rouse_ © (2013-06-01 01:53) [8]
> 1) я вот объявил в VS 2010 под .NET функцию в классе (а
> как известно, объявлять функции вне класса нельзя): TMyClass.
> Func - какое имя она будет иметь в DLL?
Ну допустим она называется "qwe".
Имя она будет иметь то - которое ты ей укажешь в секции экспорта.
Причем она должна быть реализована с учетом соглашений о вызовах.
Иначе она так и останется только тебе известной "qwe"
> 2) поскольку объявления внутри _исключительно_ классов -
> нет ли каких то нюансов при вызове из "нативного" кода
> дельфи?!
нет никаких нативных классов и нюансов, есть библиотека со своими таблицами реаллока, импорта и экспорта.
> 3) что с типами данных? У .NET известно - автоматическая
> сборка мусора - не накладывает ли и это некие нюансы?
На внешний код?
← →
Пит (2013-06-01 02:04) [9]
> Имя она будет иметь то - которое ты ей укажешь в секции
> экспорта.
возможно начинаются смешиваться понятия платформы .NET и компилятора VS.NET, я не очень хорошо разбираюсь.
Но - насколько помню, если ты в сборке объявишь public класс и у него объявишь public метод, то он будет доступен из вызова вне, это такая логичная, понятная возможность.
А что делать, если метод static (классовый метод) - есть ли особенности вызова? Кстати, опять же соглашение - stdcall?
Ведь работает виртуальная машина по сути, вообще LoadLibrary загрузит ли .NET библиотеку в нужном состоянии?
← →
Дмитрий С © (2013-06-01 02:08) [10]
> Ведь работает виртуальная машина по сути, вообще LoadLibrary
> загрузит ли .NET библиотеку в нужном состоянии?
Смею предположить, что .NET библиотека по организации схожа с организацией InProc COM объекта.
← →
Германн © (2013-06-01 02:21) [11]
> Rouse_ © (01.06.13 00:43) [4]
>
> Любой файл, выполненный в виде PE образа можно загрузить
> и использовать.
> Язык разработки тут роль не играет, в отличие от требуемого
> окружения.
>
Используя хакерские способы.
← →
Германн © (2013-06-01 02:29) [12]
> через СОМобъекты например
Через СОМ можно даже чёрта вызвать, но только если он заранее предусмотрел такую возможность. :)
← →
знайка (2013-06-01 02:30) [13]http://jonxxx.me/Pages/Page/80
← →
robt5 (2013-06-01 10:48) [14]а если без написания дллшек?
вот стоит в системе дотнет 4.0 например, нужно вызвать метод некого класса, получить результат?
можно ли это сделать через яваскрипт который можно использовать в дельфи?
← →
robt5 (2013-06-01 11:24) [15]а собственно дотнет из дельфи перекочевал в дельфипризм в виде примочки для VS ???
← →
icelex © (2013-06-01 11:51) [16]ComVisible
DllExport
← →
Пит (2013-06-01 12:53) [17]во, в статье знайки [13] уже кое-что. И фразы:
То есть экспортируемая функция должна быть public static и помечена атрибутом DllExport, как показано в коде.
это уже похоже на правду...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2013.11.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c