如果foo.dll在编译时已隐式链接,但在运行时通过Loadlibrary再次加载,则应用程序是否会获得foo.dll的新实例,还是从隐式加载可执行文件时的同一实例? / p>
yuzisheng 回答:当您显式链接已经隐式链接的库时,会发生什么?
LoadLibrary将返回相同的实例句柄,但不执行任何操作;
系统维护所有已加载的每个进程的引用计数 模块。调用LoadLibrary会增加引用计数。呼唤 FreeLibrary或FreeLibraryAndExitThread函数减少 参考计数。当其引用计数时,系统将卸载模块 达到零或进程终止时(无论 参考计数)。
如果指定的模块是尚未为DLL加载的DLL 调用过程中,系统使用以下命令调用DLL的DllMain函数 DLL_PROCESS_ATTACH值。