Page 1 of 1

wimlib-imagex.exe cannot find libwim-15.dll in path with ;

Posted: Wed Nov 06, 2019 1:09 pm
by abbodi86
Hello,

i don't know if this is a known/intended behavior, or unknown bug

if wimlib-imagex.exe (and libwim-15.dll) exist in a directory path name that contain path separator character ;
in this case:

- executing wimlib-imagex.exe directly referencing the full path = fail to load libwim-15.dll

- changing current directory (cmd location) to that path and executing wimlib-imagex.exe = success

- if wimlib-imagex.exe exist in subdirectory in that path (e.g. .\bin\), changing current directory to that path and executing bin\wimlib-imagex.exe = fail to load libwim-15.dll

- adding the subdirectory to PATH environment and executing wimlib-imagex.exe = success

i know this is a very special condition and such paths should not be used, specially with command line tools, but i just accidentally ran into that scenario when i was testing something else

and not to sound ungrateful, but i then used Process Monitor Procmon to test the scenario situations for both wimlib-imagex.exe and 7z.exe
7z.exe always worked, and judging by the captured events, it seems to use a little different steps to locate 7z.dll

i can attach the filtered events for reference if you need

Best regards, and thanks for the great tool.

Re: wimlib-imagex.exe cannot find libwim-15.dll in path with ;

Posted: Fri Jun 05, 2020 1:08 am
by synchronicity
Sorry, I missed this post.

wimlib-imagex.exe is just linked to libwim-15.dll in the standard way. I.e., it doesn't use LoadLibrary().

Therefore the DLL search order is just the standard way for Windows: https://docs.microsoft.com/en-us/window ... plications

Normally that means you have to have the DLL in the same directory as the EXE.

I don't think there's anything I should do here? This is just the normal behavior for Windows binaries.