Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 16:39   #1
АТИКОН
 
Регистрация: 26.03.2009
Сообщений: 5
По умолчанию Как использовать в Delphi-программе функции из DLL, написанной на C#

Доброго времени суток
Проблема следующая: есть DLL написанная на C# - .Net соответственно.
Так вот, есть необходимость импортнуть функции из этой библиотеки в тело программы на дельфи. Подскажите, как это осуществить?
АТИКОН вне форума Ответить с цитированием
Старый 27.03.2009, 23:43   #2
Ntlegend
Форумчанин
 
Аватар для Ntlegend
 
Регистрация: 12.05.2007
Сообщений: 373
По умолчанию

а шо?? DLL написаная на С# сильно отличается от всех остальных??
просот в своей программе пишеь обявление нужних функцый и говоришь что они лежат в длл и используешь их..
Перемен! - требуют наши сердца. Перемен! - требуют наши глаза.
В нашем смехе и в наших слезах, И в пульсации вен:
"Перемен!Мы ждем перемен!"
Ntlegend вне форума Ответить с цитированием
Старый 28.03.2009, 00:46   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вообще то там не имеет разницы на каком языке написана DLL. Просто подключаешь ее и выбираешь нудную функцию (как сказал Ntlegend)
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 28.03.2009, 09:51   #4
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

АТИКОН, наверное только вот так http://www.rsdn.ru/article/dotnet/net2com.xml Встречал обсуждение возможности еще одного варианта, но только обсуждение.

Ntlegend, spamer, dll для .Net - это совсем не то же самое, что dll для win32
Антон Ю.Б. вне форума Ответить с цитированием
Старый 29.03.2009, 10:51   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от Антон Ю.Б. Посмотреть сообщение
dll для .Net - это совсем не то же самое, что dll для win32
Только что попробывал написать dll на Delphi Prism и вызвал функцию через обычную Win32 программу написанную на Delphi 2009 и всё нормально работает. Тоже не вижу отличий dll между .NET и Win32.
FaTaL вне форума Ответить с цитированием
Старый 29.03.2009, 13:56   #6
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

FaTaL, сейчас почитал Рихтера (глава "Хостинг CLR и домены приложения") и понял, что был не совсем прав. То есть можно в Win32 приложении создать хост, загружающий среду CLR и через него работать с управляемыми сборками (с DotNet dll). Внимательно не смотрел, но, похоже, что Delphi скрыто реализует это при попытке загрузки в Win32 приложении dotNet dll. Но там, вроде как, немало своих особенностей.

Но в любом случае речь не про отличия, а про разные механизмы.
Антон Ю.Б. вне форума Ответить с цитированием
Старый 18.03.2013, 13:51   #7
Aleksey999
 
Регистрация: 18.03.2013
Сообщений: 6
По умолчанию Дыбил

Цитата:
Сообщение от Ntlegend Посмотреть сообщение
а шо?? DLL написаная на С# сильно отличается от всех остальных??
просот в своей программе пишеь обявление нужних функцый и говоришь что они лежат в длл и используешь их..
Зачем глупость писать? Твой деревянный коник сильно отличается от Лады Калина?
Aleksey999 вне форума Ответить с цитированием
Старый 18.03.2013, 13:52   #8
Aleksey999
 
Регистрация: 18.03.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от spamer Посмотреть сообщение
Вообще то там не имеет разницы на каком языке написана DLL. Просто подключаешь ее и выбираешь нудную функцию (как сказал Ntlegend)
Еще один дибил....
Aleksey999 вне форума Ответить с цитированием
Старый 18.03.2013, 14:05   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Aleksey999, ну так напиши чего умного, а то сам как дурак.

По теме:
Собери на C# DLL, включив опцию поддержки ActiveX/COM.
Затем используй где угодно, CoCreateOleObject
Подробнее...
Человек_Борща вне форума Ответить с цитированием
Старый 18.03.2013, 14:06   #10
Aleksey999
 
Регистрация: 18.03.2013
Сообщений: 6
По умолчанию

Цитата:
Сообщение от АТИКОН Посмотреть сообщение
Доброго времени суток
Проблема следующая: есть DLL написанная на C# - .Net соответственно.
Так вот, есть необходимость импортнуть функции из этой библиотеки в тело программы на дельфи. Подскажите, как это осуществить?
Просто так они между собой не работают. Для обращения используется так называемый прокси Com$.Net. И dll написанную в таком виде исользовать не получится. Каждому классу методу который ты хочешь был доступен должна предшествовать инициализация вида [ComVisible(true)]. Начни с написания корректного COM http://msdn.microsoft.com/ru-ru/libr...(v=vs.90).aspx
Aleksey999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать пример программы из демо-каталога Delphi artemavd БД в Delphi 2 22.03.2009 18:34
Как использовать ActiveX в Delphi tsergey Компоненты Delphi 8 17.02.2009 11:24
Как в Delphi создавать и использовать скины для програм SeRhy Помощь студентам 3 20.12.2007 20:59
Кто сможет разъяснить как и зачем использовать виртуальные функции в C++? Dunhil Помощь студентам 5 20.12.2007 14:19