Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Visual C++/MFC/WTL > DLL и приложение |
Автор: Sheff_Guest 1.11.2004, 21:05 | ||||
Люди, есть DLL'ка и приложение, в приложении код:
В самой DLL'ке:
Происходит ошибка, оно и понятно, т.к DLLка не видит переменных приложения, которым была загружена, как это лечить, как сделать так чтобы она их видела ? MMF, shared data segments меня не устраивает, в моём проекте это не применимо... |
Автор: Sheff_Guest 3.11.2004, 22:46 |
Народ, плиз, хоть какие-нить идеи |
Автор: bel_nikita 3.11.2004, 23:06 | ||
![]() А если перегрузить delete? |
Автор: Sheff_Guest 4.11.2004, 23:30 |
Ошибка в общем странная, значение строки в "d" DLL'ка читает, а вот удалить по этому адресу не может. Перегрузить delete ? Для типа char ??? А как это ? |
Автор: bel_nikita 5.11.2004, 00:38 |
Может, так попробуй: strcpy(&data[0],"Test"); fnDLL(&data[0]); Хотя это тоже самое, но все же попробуй. З.Ы.: А вообще не понятно: зачем в ДЛЛке очищать? Ведь приложение выделело память, и значит должно само за собой убрать, а не передавать это в ДЛЛ |
Автор: Sheff_as_Guest 7.11.2004, 21:02 |
bel_nikita, не помогло... |
Автор: Mad 7.11.2004, 21:14 |
Выделять надо не new а GlobalAlloc тоди GlobalFree будет нормально освобождать память. |
Автор: BraM's 10.11.2004, 12:17 |
Хороший стиль програмирования, ИМХО, заставляет освобождать память "там же" где она была выделена. Не надо передавать такие штучки в ДЛЛ на освобождение... Чего-то я в ![]() |
Автор: mr.DUDA 10.11.2004, 22:16 |
используй виртуальные деструкторы (тема уже поднималась !!) |