如果foo.dll在编译时已隐式链接,但在运行时通过LoadLibrary再次加载,则应用程序是否会获得foo.dll的新实例,或者它是与隐式加载可执行文件时的实例相同?
最佳答案
LoadLibrary将返回相同的实例句柄,但不执行任何操作;
LoadLibrary
系统维护所有已加载的每个进程的参考计数
模块。调用LoadLibrary会增加引用计数。呼唤
FreeLibrary或FreeLibraryAndExitThread函数减少
参考计数。当其引用计数时,系统将卸载模块
达到零或进程终止时(无论
参考计数)。
如果指定的模块是尚未为DLL加载的DLL
调用过程中,系统使用以下命令调用DLL的DllMain函数
DLL_PROCESS_ATTACH值。
关于c++ - 当您显式链接已经隐式链接的库时,会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58831399/