c++ - 是否可以将 dll 固定在内存中以防止卸载?

标签 c++ windows dll

在 Windows 中有什么方法可以防止通过 FreeLibrary 卸载我们的 dll? IE。在进程的生命周期中将其“固定”在内存中?

最佳答案

我知道这是一个旧线程,但是有一个“正确”的方法可以做到这一点:

使用 GET_MODULE_HANDLE_EX_FLAG_PIN 标志调用 GetModuleHandleEx

来自 MSDN :

The module stays loaded until the process is terminated, no matter how many times FreeLibrary is called.

以防万一其他人发现这个线程...

关于c++ - 是否可以将 dll 固定在内存中以防止卸载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3454315/

相关文章:

c++ - 将它们(函数)保存在内存中的同一位置

c++ - Visual Studio 2008 C++ 无 x64 平台

c++ - C++程序中的 undefined reference 错误

c++ - 奇怪的指针错误 C++ MSVC6

c - 跨平台项目中调试宏定义

c++ - 如何使用 unicode 在 C++ 中打印立方米?

c++ - 这行代码是如何工作的?

windows - 在批处理脚本中运行 rmdir 命令时如何解决 "The directory is not empty"错误?

Windows 权限,在不是管理员时获取 .dll 的句柄,不确定

c# - 在托管 DLL 中加载 C++ DLL 时出现 EEFileLoadException