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

这里写目录标题

    • 1.生成动态链接库
    • 2.使用动态链接库
      • 2.1找不到.h,.dll,.exe
      • 2.2坑人的字符集问题

  • 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函数因为不生成可执行文件。
项目 -> 属性->配置类型->动态库
动态链接库的生成和使用(错误汇总)_第1张图片

2.使用动态链接库

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

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

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

1.首先添加路径

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

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

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

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

  • 字符集导致
    动态链接库的生成和使用(错误汇总)_第5张图片
    解决:保持跟dll生成项目的字符集保持一致,并不是一定是下面的unicode
    动态链接库的生成和使用(错误汇总)_第6张图片

2.2坑人的字符集问题

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

你可能感兴趣的:(win,visual,studio,c++,ide)