c++ - 可以在卸载主机 DLL 之前卸载通过导入库链接的 DLL 吗?

标签 c++ windows dll dllimport

我有一个 Foo.dll,它通过 Bar 的导入库 (Bar.lib) 链接到 Bar.dll。 Foo.dll 还延迟加载 Bar.dll,因此它仅在首次调用时加载。现在,如果 Foo.dll 调用由 Bar.dll 导出的函数,所以 Bar.dll 被加载,那么 Bar.dll 是否可以在 Foo.dll 从进程中卸载之前卸载?前提是app进程中没有其他DLL依赖Bar.dll。

最佳答案

是的,您必须指定 /DELAY:UNLOAD链接器选项并调用 FUnloadDelayLoadedDLL功能。

参见 Unloading a delay-loaded DLL获取更多信息。

关于c++ - 可以在卸载主机 DLL 之前卸载通过导入库链接的 DLL 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30387445/

相关文章:

c++ - 是否可以在Visual Studio中分析GPU内存?

c++ - 用更快的方法替换这些方法

windows - Makefile 仅适用于 MSYS2 (WIndows) 上的相对路径

c++ - c++ 编译的 DLL 可以在没有大小差异的情况下在代码上有所不同吗?

在 GCC 或 Cygwin 中创建 DLL?

windows - 创建一个 Windows 进程以静默检查丢失的 DLL

c++ - 如何在不使用 std::string 或任何 STL 的情况下将复数存储在 C++ 的字符数组中?

C++ 模板 : Convincing self against code bloat

windows - 使用 Windows 容器缩短 Amazon ECS Fargate 任务的启动时间

javascript - 错误 : bcrypt_lib. Node 不是有效的 Win32 应用程序