动态链接库的生成和使用(错误汇总)

  • Visual Studio版本: 2019
    规定:生成dll的工程和使用dll的工程要保持下面三点保持一致
    1.debug或者release
    2.x86(win32)或者x64
    3.字符集

1.生成动态链接库

官方文档:https://docs.microsoft.com/zh-cn/cpp/build/walkthrough-creating-and-using-a-dynamic-link-library-cpp?view=msvc-160

生成动态链接库 .dll 同时生成 .lib 的原因:这个.lib并不是lib库而是引入库。

引入库文件 (.LIB): 包含该动态链接库包含的函数和变量的符号名。注意:虽然引入库文件和静态链接库文件的后缀名相同(.LIB),但是他们之间有着本质的区别,不可混淆。
动态链接库文件 (.DLL): 包含该动态链接库实际的函数和数据。在程序运行阶段,加载该文件,并将该文件映射到进程地址空间中,然后访问该文件中的相应函数。

选择一个空项目然后添加.c .h文件就好了,不需要添加main函数因为不生成可执行文件。
项目 -> 属性->配置类型->动态库
在这里插入图片描述

2.使用动态链接库

遇到错误解决办法参考文章
VS2019中设置了头文件路径却提示找不到头文件的一种原因

Visual Studio提示由于找不到dll,无法继续执行代码的问题解决

2.1找不到.h,.dll,.exe

1.首先添加路径

  • 头文件路径添加
    头文件
  • lib文件路径添加(这个lib并非静态库而是dll的引导文件)。具体dll文件应该放在哪里,请往下看。
    lib
  • lib命添加
    上面只添加了 .lib 的路径,这里把 .lib 的文件名写进去
    在这里插入图片描述
  • dll文件添加
    可以参考:https://blog.csdn.net/jiasu6905/article/details/106711851
    这里只说最简单的一种方式:把 .ddl 复制到工程编译输出文件目录下 eg:x64 -> debug下

2.添加路径还找不到的话

  • .h找不到
    可能原因:平台使用x86和工程使用x64不一致导致的(重点,不管是dll生成项目还是使用项目平台配置要保证相同,最开头提到的那三点)

  • .dll找不到
    存放路径不对,不是添加 .lib 路径就能找到dll
    1.添加系统环境变量
    2.把dll文件存放到输出文件目录

  • 字符集导致
    在这里插入图片描述
    解决:保持跟dll生成项目的字符集保持一致,并不是一定是下面的unicode
    在这里插入图片描述

2.2坑人的字符集问题

ASCII -> ANSI(多字节字符集)-> Unicode
ANSI(多字节字符集):在ASCII基础上衍生很多版本,比较出名的GB-2312
unicode字符集(UTF-16):为了统一多字节字符集而提出的一种字符集,后来为了处理单字节衍生出大名鼎鼎的UTF-8。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

maosql

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值