LoadLibrary 错误 126 取决于用户权限
LoadLibrary Error 126 dependent on user rights
我有一个奇怪的问题,我 运行 在我那里的应用程序在客户那里的某个地方不起作用。
在我的应用程序中,我尝试从同一文件夹中加载另一个带有 LoadLibrary()
的 dll。
如果应用程序是 运行 作为普通用户,则返回 126 error
。如果同一应用程序以管理员权限启动,则 dll 会正确加载。
很难诊断,因为我无法在我的机器上重现错误。
有什么想法吗?
编辑
好的,这是一个依赖项:dll 是一个 Debug-Build,找不到 MSVCP120D.dll
和 MSVCR120D.dll
。我可以通过 Process Monitor-Log 来判断。
但是:我有一个普通用户的日志和一个管理员的日志,在这两种情况下都找不到依赖项。为什么 LoadLibrary
在管理员权限的情况下工作?
即 ERROR_MOD_NOT_FOUND
,这是不言自明的。找不到您正在加载的 DLL 或其依赖项之一。也许您没有安装必要的依赖项,例如MSVC 运行时。或者可能是其他原因。
您需要进行一些调试和调查。我将从使用 Dependency Walker 分析 DLL 负载开始。
我有一个奇怪的问题,我 运行 在我那里的应用程序在客户那里的某个地方不起作用。
在我的应用程序中,我尝试从同一文件夹中加载另一个带有 LoadLibrary()
的 dll。
如果应用程序是 运行 作为普通用户,则返回 126 error
。如果同一应用程序以管理员权限启动,则 dll 会正确加载。
很难诊断,因为我无法在我的机器上重现错误。 有什么想法吗?
编辑
好的,这是一个依赖项:dll 是一个 Debug-Build,找不到 MSVCP120D.dll
和 MSVCR120D.dll
。我可以通过 Process Monitor-Log 来判断。
但是:我有一个普通用户的日志和一个管理员的日志,在这两种情况下都找不到依赖项。为什么 LoadLibrary
在管理员权限的情况下工作?
即 ERROR_MOD_NOT_FOUND
,这是不言自明的。找不到您正在加载的 DLL 或其依赖项之一。也许您没有安装必要的依赖项,例如MSVC 运行时。或者可能是其他原因。
您需要进行一些调试和调查。我将从使用 Dependency Walker 分析 DLL 负载开始。