Re: указатель на таблицу виртульных функций и DLL
От: Ivan Россия www.rsdn.ru
Дата: 14.11.06 13:22
Оценка: 2 (1)
Здравствуйте, seafresh, Вы писали:

S>Если есть другие варинаты с удовольствием выслушаю.

не давать модулю выгрузиться пока есть живые объекты.
самый простой вариант — вызывать LoadLibrary в конструкторе (при создании), FreeLibrary в деструкторе (при разрушении) экземпляра. Более правильный — сделать что-то типа DllCanunloadNow и свой счетчик ссылок модуля. Не выгружать модуль пока DllCanUnloadNow не вернет true. При создании объектов увеличивать счетичк ссылок модуля, при разрушении уменьшать. DllCanUnloadNow возвращает true при нулевом счетчике ссылок модуля. Так реализуются COM серверы в библиотеке ATL, при создании компонента увеличивается счетчик ссылок модуля (_Module.Lock()), при разрушении уменьшается (_Module.Unlock()).
И еще один вариант — использовать COM , это позволит эффективно использовать экзмепляры классов/компонентов, переложив множество технических деталей на инфраструктуру COM, в частности вопросы выгрузки модуля.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.