You can set WINEDLLOVERRIDES to set overrides without editing stuff in winecfg or the registry.
If the DLL overrides don't work it's possible that some other piece is missing. You can use WINEDEBUG=loaddll,module to find out what the loader is doing.
The even better solution would be to implement the missing functions :-)
Stefan
Am 09.04.2016 um 01:22 schrieb Vladimir Panteleev vladimir@thecybershadow.net:
Thanks Theodore. As I have mentioned, I have already tried DLL overrides, which did not provide the desired effect. Also, as I have mentioned, I'm looking for a programmatic solution, without involving user intervention.
On Fri, Apr 8, 2016 at 11:21 PM, Vladimir Panteleev vladimir@thecybershadow.net wrote:
Thanks Theodore. As I have mentioned, I have already tried DLL overrides, which did not provide the desired effect. Also, as I have mentioned, I'm looking for a programmatic solution, without involving user intervention.
On Fri, Apr 8, 2016 at 11:19 PM, Theodore Dubois tblodt@icloud.com wrote:
Use DLL overrides. Open winecfg, go to the Libraries tab, type msvcr120, click add, click edit, click native, click ok.
~Theodore
On Apr 8, 2016, at 2:52 PM, Vladimir Panteleev vladimir@thecybershadow.net wrote:
(reposting from wine-users, which seems to be dead)
I'm trying to get the VS2012 C++ compiler (cl.exe) running under Wine
- stand-alone, as a component for a different larger project. The
project works fine on Windows without affecting any global system settings or files (i.e. it unpacks DLLs etc. to private subdirs instead of installing them system-wide). I'd like it to "just work" under Wine as well, without user intervention or persistent modifications to bottle settings or system files.
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@Concurrency@@QEAA@XZ, aborting Internal Compiler Error in Z:\home\vladimir\work\Digger\work-wine\dl\vs2013-community\Program 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 bottle?
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.