Re: Виртуальный деструктор
От: rg45 СССР  
Дата: 05.03.13 08:28
Оценка:
Здравствуйте, 3m-soft, Вы писали:

3S>Оказалось, что при создании объекта на стороне dynaload.dll меняется vtable на другую, фактически на свой деструктор, который прежде чем вызвать оригинальный занимается чем-то (не силен в ассемблере) и потом вызывает оригинальный, реализованный в mylib.dll. Поэтому когда dynaload.dll выгружается установленный деструктор сваливает вместе с модулем. Отсюда и EXCEPTION_ACCESS_VIOLATION.



А правильно ли класс экспортируется из mylib.dll? Изнутри mylib.dll он должен быть виден как __declspec(dllexport), а в других модулях как __declspec(dllimport). Обычно это достигается использованием нехитрых макросов.
--
Справедливость выше закона. А человечность выше справедливости.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.