Использование STL в динамически загружаемых DLL
От: techMick  
Дата: 27.02.02 09:57
Оценка:
В своем проекте я использовал STL и в главном приложении и в динамически подключаемых DLL (LoadLibrary/GetProcAddress)
и мне приходилось передавать указатели на объекты map & list из DLL в EXE. При попытке использовать объекты созданные в DLL в основном приложенни иногда получал memory fault. После отладки оказалось что каждый экземпляр внутренних структур STL инициализировался по разному, в частности для проверки окончания списка (дерева) используется не проверка на NULL, а сравнение со static членом внутренней структуры дерева. Соответственно этот static-member по разному инициализировался в разных экземплярах STL (в EXE и в DLL). По этому использовать напрямую объект выделенный в DLL нельзя, но можно только после того как он будет скопирован в экземпляр созданный в EXE файле.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.