[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