[Qt-interest] Problem with Windows distribution of plugins using CRT DLL

RZ rz at univie.ac.at
Fri Aug 14 09:14:01 CEST 2009


Hi,

this came up here very often. As far as I understood and remember the 
"solution" is vcredist_x86.exe (or whatever architecture). Pack that in 
your installer and execute it when installing.

This will unpack the right MS dll (in c:\windows\SxS or something like 
that). Together with the manifest in your exe/dll than everything will 
be fine.

HTH,

RZ

> Hello,
> 
> Has Qt Software considered the ramifications of needing to place plugin 
> DLL's into e.g. the imageformats\ and accessible\ subfolders?  This 
> creates a deployment issue under Windows.  In a Windows "app local" 
> deployment, the CRT DLLs are put either into the .exe folder, or into a 
> subfolder called e.g. Microsoft.VC80.CRT.  This lets the .exe (and any 
> DLL's in the same folder as the .exe) use the CRT DLLs without having to 
> install them globally onto the user's computer.
> 
> But it doesn't work for the DLL's in the plugins folders such as 
> imageformats\ and accessible\ as these DLL's are in a different folder 
> than the .exe so they don't find the CRT DLL's and thus won't be loaded 
> unless the user's computer has those same DLL's stored globally (which 
> the app cannot guarantee).
> 
> The only workaround I've found is to also put the CRT DLL's into each 
> plugin folder, but that is a waste and may cause 2 instances of the DLLs 
> - one from the .exe folder, and another from the plugin folder.  Perhaps 
> the plugin DLL's could be moved into the .exe folder with a naming 
> system, such as imageformat_*, accessible_*.
> 
> What do you think about that?
> 
> Thanks,
> David



More information about the Qt-interest-old mailing list