LoadLibrary 错误 126 取决于用户权限

LoadLibrary Error 126 dependent on user rights

我有一个奇怪的问题,我 运行 在我那里的应用程序在客户那里的某个地方不起作用。 在我的应用程序中,我尝试从同一文件夹中加载另一个带有 LoadLibrary() 的 dll。 如果应用程序是 运行 作为普通用户,则返回 126 error。如果同一应用程序以管理员权限启动,则 dll 会正确加载。

很难诊断,因为我无法在我的机器上重现错误。 有什么想法吗?


编辑

好的,这是一个依赖项:dll 是一个 Debug-Build,找不到 MSVCP120D.dllMSVCR120D.dll。我可以通过 Process Monitor-Log 来判断。

但是:我有一个普通用户的日志和一个管理员的日志,在这两种情况下都找不到依赖项。为什么 LoadLibrary 在管理员权限的情况下工作?

ERROR_MOD_NOT_FOUND,这是不言自明的。找不到您正在加载的 DLL 或其依赖项之一。也许您没有安装必要的依赖项,例如MSVC 运行时。或者可能是其他原因。

您需要进行一些调试和调查。我将从使用 Dependency Walker 分析 DLL 负载开始。