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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> освобождение DLL после вызова процедуры, [DLLImport("dll.dll")] 
V
    Опции темы
W03L
Дата 22.6.2009, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 8.2.2007

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



Привет.
есть библиотека, написанная на с++
если я вызываю процедуру из неё так:
Код

[DllImport("dll.dll")]
public static extern void _someProc();

private void button1_Click(object sender, EventArgs e)
{
  _someProc();
}

то библиотека остаётся в памяти до закрытия приложения.
подскажите, как можно выгрузить dll.dll (чтобы отработало DLL_PROCESS_DETACH) не закрывая программы.
PM MAIL   Вверх
Partizan
Дата 22.6.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


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

Репутация: 18
Всего: 67



W03L

Код

     [DllImport("kernel32.dll")]
     public static extern IntPtr LoadLibrary(string lpFileName);

     [DllImport("kernel32.dll")]
     public static extern IntPtr FreeLibrary(IntPtr library);



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
evkwarrior
Дата 8.6.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 15.3.2007

Репутация: нет
Всего: 1



С вашего позволения, продолжу эту тему:

LoadLibrary и FreeLibrary - это геморрой:

1) надо загружать каждую процедуру с помощью GetProcAddress 
2) делать приведение типов
3) преобразовывать неуправляемые типы к управляемым (с пом P\Invoke или Marshaling)

поправьте меня, если я не прав.

Можно придумать более простой способ выгрузки dll, минуя всё это?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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