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
隐式链接用法
- 准备好三种文件,以openssl为例(.h .lib .dll)
- 添加头文件搜索,有两种方式,任选一种就可以,建议“附加包含目录”(区别请看:msvc 库目录/附加库目录 包含目录/附加包含目录的区别)
- 添加lib文件搜索目录,有两种方式,任选一种就可以,建议“附加库目录”(区别请看:msvc 库目录/附加库目录 包含目录/附加包含目录的区别)
- 添加需要链接的lib文件
显式链接
需要 LoadLibraryEx和GetProcAddress 函数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通