Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамическая сборка и dll на С++ 
:(
    Опции темы
Vyacheslav
Дата 16.11.2006, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 2
Всего: 59



Господа, я тут случайно услышал о динамической сборке. Вопрос такой, а можно ли решить следующую задачу: приложение-сервер, который вызывает функции из библиотеки dll на С++ по требованию клиента.  Хотелось бы организовать следущее. Что бы при модификации и смене этой dll, сервер перегенерил бы сборку, отвечающую за вызовы функций из библиотеки.



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 16.11.2006, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Vyacheslav @  16.11.2006,  17:22 Найти цитируемый пост)
Что бы при модификации и смене этой dll, сервер перегенерил бы сборку, отвечающую за вызовы функций из библиотеки.

Самый простой способ сделать это - с пом. CSharpCodeProvider.CompileAssemblyFromFile. Вот только проблема: однажды загруженную сборку выгрузить нельзя. Так что либо придётся держать в памяти сервера постоянно растущую кучу подгруженных сборок, либо создавать отдельный аппдомен, грузить туда и все вызовы делать через AppDomain.Invoke


--------------------
user posted image
PM MAIL WWW   Вверх
Vyacheslav
Дата 16.11.2006, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 2
Всего: 59



Это как раз не проблема. Естесвенно предполагается, что для подмены dll сервер должен выгружаться


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Vyacheslav
Дата 17.11.2006, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 2
Всего: 59



Проблема в том, как зачитать из dll информацию, необходимую для  создания  сборок. 


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 17.11.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Vyacheslav @  17.11.2006,  09:24 Найти цитируемый пост)
Проблема в том, как зачитать из dll информацию, необходимую для  создания  сборок. 

А какая информация нужна? Можно сделать метод в длл, который юзать через [DllImport], и передавать через него все нужные параметры. А их вставлять в файл-шаблон .cs, который компилить в сборку.


--------------------
user posted image
PM MAIL WWW   Вверх
Vyacheslav
Дата 17.11.2006, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2124
Регистрация: 25.3.2002
Где: Москва

Репутация: 2
Всего: 59



Ну я так полагаю, что нужно имя экспортируемой функции, число и тип параметров.



--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 17.11.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Есть проблема с написанием кода? Нужен готовый пример?


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.