msvc的动态链接

参考微软doc 将可执行文件链接到 DLL
msvc的动态链接库分为隐式链接(Implicit Linking)和显式链接(Explicit Linking)
隐式链接需要:.h文件,.lib文件,.dll文件
显式链接只需要:.dll文件

隐式链接

这里的.lib文件并不是静态库(static library)而是导出库(import library),两种库文件从文件名看不出任何区别,可以通过vs提供的工具lib.exe判断一个lib文件是导出库还是静态库
lib /list显示*.obj的是静态库,显示*.dll的是导出库
这是import library

这是static library

隐式链接用法

  1. 准备好三种文件,以openssl为例(.h .lib .dll)
  2. 添加头文件搜索,有两种方式,任选一种就可以,建议“附加包含目录”(区别请看:msvc 库目录/附加库目录 包含目录/附加包含目录的区别
  3. 添加lib文件搜索目录,有两种方式,任选一种就可以,建议“附加库目录”(区别请看:msvc 库目录/附加库目录 包含目录/附加包含目录的区别
  4. 添加需要链接的lib文件

显式链接

需要 LoadLibraryEx和GetProcAddress 函数

posted @ 2022-07-07 13:13  feipeng8848  阅读(143)  评论(0编辑  收藏  举报