[Qt-interest] QFileIconProvider "leaks" DLL's (qgifd4.dll, qicod4.dll, QtSvgd4.dll, etc.)

Tony Rietwyk tony.rietwyk at rightsoft.com.au
Wed Aug 19 04:53:30 CEST 2009


Niels wrote:

> QFileIconProvider loads some DLL files that aren't unloaded anymore. 
> When I step over the QFileIconProvider constructor in the 
> debugger (MSVC 
> 2008), I get the following debug output:
> 
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qgifd4.dll'
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qicod4.dll'
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qjpegd4.dll'
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qmngd4.dll'
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qsvgd4.dll'
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\bin\QtSvgd4.dll', Symbols loaded.
>  'Foo.exe': Loaded 'C:\Qt\4.5.2\plugins\imageformats\qtiffd4.dll'
> 
> Those DLL's remain in memory, and thereby, QtGui4.DLL and QtCore4.dll 
> also remain there. Is that a bug? Shouldn't the destructor of 
> QFileIconProvider unload those DLL's?  Or should I unload those DLL's 
> myself, after using QFileIconProvider, in my own code?  (If so, how 
> should I do so?)
> 
> It appears that the DLL's are loaded inside 
> QFileIconProviderPrivate(), 
> when it does:
>   trashcan = style->standardIcon(QStyle::SP_TrashIcon);
> (In "C:\Qt\4.5.2\src\gui\itemviews\qfileiconprovider.cpp")
> 
> 
> Hope you can help, Niels

Hi Niels, 

I'm curious, why is it so important to you to have these DLL's unloaded? 

Tony.




More information about the Qt-interest-old mailing list