如果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/

10-14 15:19
查看更多