Передыстория:Написанна библиотека классов (экспортируется из dll ) для работы с SQL Server-ом, все класы есть потомками CObject.
Проблема: При подключении к проекту неявным образом (через Link) библиотека в Release версии приложения выгружается некорректно, к такому выводу я пришел протестировав его с помощью NuMega-вского BoundsChecker-а (Вижуала етого не показывает). При завершении
приложения вываливается с десяток Memory leak и Resource leak.
Приемер Memory leak 33796 bytes allocated by operator new in plex.cpp (29), HANDLE: 0x02F8BF80
Ето байдень вываливается при использовании CFile в одном из классов библиотеки файл открывается с
помощью CArchive считываю инфо закрываю архив закрываю файл по идее все коректно..
Господа кто сталкивался с такой проблемой большая просьба со мной связаться ICQ 128948485
Зарание благодарен.
P.S. (я думаю что что-то намутил с деструкторами...)
Здравствуйте undefined, вы писали:
U>Господа доброый день
U>Передыстория:Написанна библиотека классов (экспортируется из dll ) для работы с SQL Server-ом, все класы есть потомками CObject.
U>Проблема: При подключении к проекту неявным образом (через Link) библиотека в Release версии приложения выгружается некорректно, к такому выводу я пришел протестировав его с помощью NuMega-вского BoundsChecker-а (Вижуала етого не показывает). При завершении U>приложения вываливается с десяток Memory leak и Resource leak.
U>Приемер Memory leak 33796 bytes allocated by operator new in plex.cpp (29), HANDLE: 0x02F8BF80
U>Ето байдень вываливается при использовании CFile в одном из классов библиотеки файл открывается с U>помощью CArchive считываю инфо закрываю архив закрываю файл по идее все коректно..
U>Господа кто сталкивался с такой проблемой большая просьба со мной связаться ICQ 128948485
U>Зарание благодарен.
U>P.S. (я думаю что что-то намутил с деструкторами...)
у меня было что-то подобное
в DLL выделялась память(создавался объект класса), в другой DLL удалялась
Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось
при переходе к резилу приложение через 2-3 сек работы падало
оказалось что проблема в удалении
в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?
Здравствуйте sluge, вы писали:
S>у меня было что-то подобное S>в DLL выделялась память(создавался объект класса), в другой DLL удалялась S>Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось S>при переходе к резилу приложение через 2-3 сек работы падало S>оказалось что проблема в удалении S>в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?
Работу с файлами я привел для примера...
Но динамически с памятю я работаю ...
в основном освобождается она в деструкторе ...класов..
по идее все корректно... фиг его знает что а не Вижуал блин
Кстати я пробовал создать приложение на основе диалогового окна (голое ниччего там не делал как визард создал так все и оставил ) и скомпилить его со статически подключаемыми библиотеками, BoundsChecker тоже намалевал :-) мне Memory Leak-ов немного...
Здравствуйте LOK, вы писали:
LOK>Здравствуйте sluge, вы писали:
S>>у меня было что-то подобное S>>в DLL выделялась память(создавался объект класса), в другой DLL удалялась S>>Purify иногда показывала MemoryLeak, но не постоянно, пожтому отловить не удавалось S>>при переходе к резилу приложение через 2-3 сек работы падало S>>оказалось что проблема в удалении S>>в общем, с тех пор я всегда удаляю памятьв том же модуле что и выделял, может с файлами то же самое?
LOK>Работу с файлами я привел для примера... LOK>Но динамически с памятю я работаю ... LOK>в основном освобождается она в деструкторе ...класов.. LOK>по идее все корректно... фиг его знает что а не Вижуал блин
LOK>Кстати я пробовал создать приложение на основе диалогового окна (голое ниччего там не делал как визард создал так все и оставил ) и скомпилить его со статически подключаемыми библиотеками, BoundsChecker тоже намалевал :-) мне Memory Leak-ов немного...
LOK>Или Чекер глюкавый или одно из двух :-)
БаундЧекеру не всегда стоит верить. Судя по моим наблюдениям, освобождение ресурсов в DllMain он вообще любит не замечать.