客户正在使用我们的dll,它创建了一个使用开源库的子进程,最终由于调用LoadLibraryExW()而失败,最后返回的错误是ERROR_MOD_NOT_FOUND。这在WinXP 32位上发生,但在其他计算机上不会发生。但我们知道正确的依赖关系集已安装,甚至在相同的目录中。
因此,我们自然而然地认为,使用依赖项Walker来查找该特定机器上缺少的依赖项。不幸的是,它没有显示任何缺失,只显示了一些延迟加载警告,这些警告不是库的直接依赖项。在我使用depends.exe的经验中,总是会发现缺失的依赖是什么。
因此,在这一点上,我已经绞尽脑汁地试图理解,如果库的所有依赖项都在那里,为什么我会得到ERROR_MOD_NOT_FOUND?唯一让这台机器与众不同的是它非常安全,因为它是由政府使用的,但如果我们有访问/权限问题,我会期待不同类型的错误代码。
我已经构建了一个小的Win32可执行文件,它只在上述库上调用LoadLibraryExW(),当它从与库所在的目录相同的目录中运行时,它会在客户有问题的机器上毫无问题地加载该库。
一件事是,我们的产品是一个ActiveX插件,它启动子进程,子进程调用第三方库,第三方库有问题的LoadLibraryExW()调用。那么,它失败的原因可能是它正在运行的上下文(例如,从浏览器)?
https://stackoverflow.com/questions/16700810
复制相似问题