LoadLibrary
calls. This is needed because the engine doesn't report the error code for failed client.dll
library loading.Repository here: https://github.com/SamVanheer/NativeDllTester
Download: https://github.com/SamVanheer/NativeDllTester/releases/tag/V1.0
See the README for usage.
The issue that made this tool necessary: https://github.com/ValveSoftware/halflife/issues/2086
I also included additional information for finding missing dependencies using other tools, since the error code won't tell you which dependencies are missing.
I used Process Monitor to find it by looking for library load attempts after the client dll is loaded, this is what the relevant information looks like: The missing library is a debug version of a VS2017 redistributable library that contains the C runtime. The redistributable only contains the release version, and the client.dll was a debug build. Recompiling it as a release build solved the problem. If you have VS2017 with C++ support installed it will have installed this debug version so you would be able to run it regardless.
This should make debugging
could not load library <name>
errors much easier.