[Wine] How to change Wine DLL search path for "built-in" DLLs?

Vladimir Panteleev thecybershadow.lists at gmail.com
Thu Apr 7 21:31:07 CDT 2016

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@@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
definitely a bug I guess.

More information about the wine-users mailing list