Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > .NET для новичков > Отдельные модули для приложения |
Автор: gambit 9.9.2008, 11:30 |
День добрый. Расскажите пож. новичку как работать с внешними модулями. Мне надо создать что то типа как было раньше dll. Т.е. некий файл в котором скомпилированы функции, и любой желающий может обращатся к ним. Расскажите (если можно поподробнее) обо всех этих процессах 1. Создание библиотеки 2. куда ее потом поместить (в папку с приложением или в какую другую) 3. как подключатся к этим функциям?? (писать что есть нений файл и в нем должна быть вот такая функция, или он на этапе разработки подключается (если так то можноли это обойти)) В книгах по этому поводу написано очень мало. ![]() |
Автор: Veitmen 9.9.2008, 12:37 |
Создаешь солюшен. Добавляешь проект типа ClassLibrary. Пишешь нужные тебе типы. Компилишь. В папке bin твоего проекта будет лежать DLLка. Если тебе надо использовать эту DLLку просто при написании других программ или других сборок, то добавляешь ее в Reference проекта(правой кнопкой на проекте, AddReference). И не забудь в юните прописать using + namespace твоих типов. |
Автор: Exai1e 9.9.2008, 15:18 |
Veitmen, а к этой библиотеке нельзя уже будет обращатся из Delphi к примеру или C++ ? Просто имхо - это получается вроде как не совсем dll'ка =) |
Автор: Miller_time 9.9.2008, 18:14 | ||
А разве, нету разделния на чем скомплированна библиотека одно дело если на framework , другое если на Delphi без frameworka ? Потомучто вроде как к старым библиотекам мы обращаемся через
|
Автор: gambit 9.9.2008, 22:48 |
А если я хочу создать файл, описать какие функции внем есть и все. Т.е. чтоб она не требовалась при разработке приложения |
Автор: Veitmen 10.9.2008, 04:03 | ||||||
Если ты пишешь под .Net то у тебя получается сборка с управляемым кодом. Т.е. при разработки приложения на .Net, на любом языке ты можешь ее использовать. Все потому что твоя сборка является управляемой, т.е. скомпилирована под IL язык, а фреймворк дальше будет ее компилить в машинный код, при использовании сборки. Читай мануалы по .Net.
Это если ты пишешь не управляемый код, т.е. не используешь .Net и следовательно код сразу является машинным.
Если ты хочешь что бы твоя сборка подключалась в рантейме, т.е. была бы плагином к твоему приложению, то здесь тебе надо смотреть на технологию создания плагинов. Погугли, там все очень просто. Используется рефлекшн для подключения сборки. Работает это так(это я примерно и в сжатом виде): 1. Создаешь сборку в которой есть типы реализующие какой то конкретный интерфейс. 2. Твоя программа ищет сборки в которых реализован этот интерфейс. 3. Получаешь экземпляр типа реализующего требуемый интерфейс. 4. Вызываешь функции которые определены в этом интерфейсе. Короче гугли. |
Автор: gambit 10.9.2008, 07:59 | ||||
За это спасибо посмотрю, хотя ничего информационного ты не принес.
А вот это ты к чему написал вообще не понятно. Это все знают, и вопрос вообще не про это. |
Автор: Veitmen 10.9.2008, 09:07 | ||||||
Хм... Пожалуйста... |
Автор: jonie 10.9.2008, 22:23 | ||
было описано : .net <->.net (runtime & static) .net <- unmanaged (static) опишу .net -> unmanaged (runtime & static) : если вам нужно вызывать из дельфи сборки .net, то делайте из них COM proxy сборки (tlbexp вам в помощь). то что генерирует .net это совсем длл-ка. посмотрите на ее заголовки. что вы понимаете под "dll-кой" теперь никому непонятно вообще... |
Автор: gambit 10.9.2008, 22:28 |
да кто вообще сказал про delphi??? Добавлено через 2 минуты и 44 секунды Вопрос был в том: Как написать dll библиотеку. И как потом написать прогу чтоб прога обращалась к функциям из нее, но при этом она не нужна была бы при разработке этого приложения. Добавлено через 3 минуты и 8 секунд И это все в C# |
Автор: Veitmen 11.9.2008, 07:04 | ||
ВЫ просто не правильно описали задачу. Что значит нужна dll но при этом она при разработке не нужна?? В следующий раз лучше формулируйте вашу мысль. +1 ![]() |
Автор: gambit 11.9.2008, 08:38 | ||
Мне иногда хочется матом ругатся!!! Что непонятного??? И кстати до вас 2 учасника поняли вопрос. |
Автор: Veitmen 11.9.2008, 09:02 | ||||
Хм, не нервничай. Они поняли этот вопрос:
|
Автор: Dennnis 11.9.2008, 17:44 |
Создание dll-ки: 1) File->New Project->ClassLibrary - Создаешь новый проект 2) Project->Add Class - Добавляешь новый класс 3) Добавляешь необходимые методы и свойства в класс 4) Ctrl+Shift+B - Компилируешь библиотеку Использование dll-ки: 1) File->New Project->Console Application или File->New Project->Windows Forms Application 2) File->Project->Add Reference ->вкладка Browse - Находишь свою dll-ку, OK 3) Используешь в проекте класс из dll-ки. |
Автор: gambit 12.9.2008, 11:28 |
Dennnis, спасибо. |
Автор: Veitmen 12.9.2008, 11:48 |
![]() |
Автор: source777 12.9.2008, 11:53 | ||
+1 |
Автор: psn 12.9.2008, 12:07 |
![]() |
Автор: Skynin 12.9.2008, 15:00 |
Чтобы было видно отовсюду, в смысле языков - оформи свою dll в COM+ объект. И используют потом, как используют COM объекты. Хотя это технология на шаг назад. |
Автор: gambit 12.9.2008, 21:53 |
Решил описать то что хотел более подробно, но это уже другая тема. |