gpt4 book ai didi

winapi - LoadLibraryExW() 失败,最后一个错误是 ERROR_MOD_NOT_FOUND,但没有缺少依赖项?

转载 作者:行者123 更新时间:2023-12-01 02:25:35 27 4
gpt4 key购买 nike

客户正在使用我们的 dll,该 dll 正在创建一个使用开源库的子进程,最终由于调用 LoadLibraryExW() 而失败,返回的最后一个错误是 ERROR_MOD_NOT_FOUND。这发生在 WinXP 32 位上,但不会发生在其他机器上。但是我们知道安装了正确的依赖项集,甚至在同一目录中。

所以我们很自然地想到,使用 Dependency Walker 来查找特定机器上缺少什么依赖项。不幸的是,它没有显示任何缺失,只是一些不是库的直接依赖项的延迟加载警告。根据我使用depends.exe 的经验,它总是揭示缺少的依赖项是什么。

所以在这一点上,我已经把我的头发拉出来试图理解如果所有库的依赖项都存在,为什么我会收到 ERROR_MOD_NOT_FOUND ?使这台机器独一无二的唯一另一件事是它非常安全,因为它由政府使用,但如果我们遇到访问/权限问题,我希望有不同类型的错误代码。

我已经构建了一个小的 Win32 可执行文件,它只在所述库上调用 LoadLibraryExW() ,当它从与库所在的同一目录运行时,它会在客户有问题的机器上毫无问题地加载库。

一件事是我们的产品是一个 ActiveX 插件,它启动子进程,子进程调用第 3 方库,第 3 方库有问题的 LoadLibraryExW() 调用。那么也许它失败的原因是它运行的上下文(例如来自浏览器)?

最佳答案

使用 Profiling应用程序上的 Dependency Walker 选项。可能该库正在尝试动态解析某些 API(使用 LoadLibrary/GetProcAddress),而这不会出现在静态依赖项中。

关于winapi - LoadLibraryExW() 失败,最后一个错误是 ERROR_MOD_NOT_FOUND,但没有缺少依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16700810/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com