How to change Wine DLL search path for "built-in" DLLs?
Vladimir Panteleev <thecybershadow.lists <at> gmail.com>
2016-04-08 02:31:07 GMT
I'm trying to get the VS2012 C++ compiler (cl.exe) running under Wine
(stand-alone, as a component for a different larger project).
Wine has a msvcr120.dll, however it is incomplete, at least as far as
cl.exe is concerned:
wine: Call from 0x7b44ee37 to unimplemented function
msvcr120.dll.??0reader_writer_lock <at> Concurrency <at> <at> QEAA <at> XZ, aborting
Internal Compiler Error in
Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl.exe. You
will be prompted to send an error report to Microsoft later.
The problem is that it attempts to load its builtin DLL even if I
place the native Microsoft's DLL in PATH before system32/syswow64.
WINEDLLPATH seems to have no effect, and adding a DLL override has no
effect other than changing whether it loads Wine's DLL on fails to
load a DLL at all (even though it's in PATH!). Yes, the model
(bitness) is correct.
I remember reading somewhere that Wine uses the value of PATH from the
registry. I guess I could also just delete or overwrite Wine's DLL in
system32/syswow64. But is it possible to change the DLL search path
for one Wine invocation, without any permanent modifications to the
Partially related, but I noticed that Wine does not skip over DLLs of
wrong bitness as Windows does. Instead, the program fails to
initialize. This means you can't add 32-bit and 64-bit DLL directories
to PATH and let the programs' bitness sort out which to use. That's