[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