gpt4 book ai didi

c++ - 无法从 WindowsXP 上的子文件夹加载库

转载 作者:行者123 更新时间:2023-11-28 05:17:20 26 4
gpt4 key购买 nike

我想从我的应用程序文件夹的子文件夹中加载 DLL。所以我把 my.dll 和所有依赖的 dll 放到 /myfolder

我花了一些时间才弄清楚加载它的正确方法:

m_handle = LoadLibraryEx(".\\myfolder\\my.dll", 0, LOAD_WITH_ALTERED_SEARCH_PATH);

它在 Windows 7 及更高版本上运行良好。但是它返回错误 998 ERROR_NOACCESS“对内存位置的访问无效。”在 Windows XP 上。

但是从应用程序文件夹加载这个 dll 在所有版本的 Windows 上都运行良好

PS:我尝试使用 SetDllDirectory 和 myfolder 的绝对路径和相对路径,但在 Windows XP 上仍然没有成功

最佳答案

关于 LOAD_WITH_ALTERED_SEARCH_PATH 标志,MSDN 是这样说的:

If this value is used and lpFileName specifies a relative path, the behavior is undefined.

如果您不需要使用替代搜索策略,您可以将 0 作为标志参数传递。如果你真的需要这个标志,那么你必须调用 GetFullPathName首先获取绝对路径。

关于c++ - 无法从 WindowsXP 上的子文件夹加载库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42338478/

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