【发布时间】:2017-07-02 08:42:50
【问题描述】:
如果我使用以下方法加载相同的 .dll 两次或更多次会发生什么:
handle = ::LoadLibraryExW(dllpath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH)
ASLR(DYNAMICBASE) 开启时是否返回相同的地址?
【问题讨论】:
-
您不能多次将同名的 DLL 加载到内存中。所以很明显的事情发生了,它只是增加了引用计数,现在需要两次调用 FreeLibrary() 才能再次卸载它。你会得到相同的 HMODULE。恰好是win32和win64上DLL的基地址,实现细节。
标签: visual-studio winapi visual-c++ dll