Проблемы с освобождением памяти (ole32)
От: Seper Россия  
Дата: 30.10.03 08:33
Оценка:
Всем добрый день!

Очень нужен совет.

Я использую в интерфейс IShellLink для получения информации из ярлыков.

Функция используется редко, а программа должна всегда находиться в памяти постоянно, хотел сделать, чтобы перед использованием этой функции (читай IShellLink) все что надо загружалось и инициализировалось, а потом соответственно выгружалось.

Однако фактически ничего не выгружается, т.е. после использования этой функции в памяти остаются следующие библиотеки:

Loaded 'C:\WINDOWS\system32\ole32.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\clbcatq.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\oleaut32.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\comres.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\linkinfo.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\ntshrui.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\atl.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\netapi32.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\userenv.dll', No symbols loaded.
Loaded 'C:\WINDOWS\system32\setupapi.dll', No symbols loaded.

Никаких Unloaded потом нет. Соответсвенно размер памяти, показываемый таксменеджером увеличивается на ~2 Mb (2 до и 4 после ипользования интерфейса)

Естественно делаю CoInitialize(), Release(), CoUninitialize() и даже пробовал CoFreeUnusedLibraries() и CoFreeAllLibraries() — не помогает.


Вот сижу и не знаю как быть.

Ручками делать FreeLibrary? А если потом опять надо будет интерфейсом воспользоваться?


Буду ОЧЕНЬ благодарен за любую подсказку!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.