前言查了好久好久网上的资料C调用动态链接库试了好多方法直接创建DLL、空项目创建的都多多少少有些问题然后最近找到一篇博客非常详细写的很不错这里进行转载总结。https://blog.csdn.net/LonelyBHBH/article/details/124422914然后这里我补充了一些步骤接下来看操作步骤第一步创建C空项目第二步创建头文件(.h)以及源文件(.cpp)第三步编写头文件重点图片显示部分是模板名称可以自己起最重要的就是__declspec(dllexport)以及__declspec(dllimport)。一个是导出一个是导入。为像我一样懒人们提供代码粘贴#pragma once #ifndef BHDLL_d #define BHDLL_d //宏定义导出 #ifdef BHDLL_API//如果没有定义DLLH 就定义 DLLH __declspec(dllexport) #define BHDLL_API _declspec(dllexport)//导出 #else #define BHDLL_API _declspec(dllimport)//导入 #endif // DLLH_API_//如果没有定义DLLH 就定义 DLLH _API //编写代码区域 //导出函数 BHDLL int add(int a, int b); BHDLL int sub(int a, int b); //导出类 class BHDLL dllH { public: int mul(int a, int b); int div(int a, int b); }; //以C语言方式导出函数 extern C { BHDLL int Cadd(int a, int b); BHDLL int Csub(int a, int b); } #endif第四步源文件实现头文件里面的方法为像我一样懒人们提供代码粘贴#include BH_dll.h #include iostream using namespace std; int add(int a, int b) { return a b; } int sub(int a, int b) { return a - b; } int dllH::mul(int a, int b) { return a * b; } int dllH::div(int a, int b) { return a / b; } int Cadd(int a, int b) { return a b; } int Csub(int a, int b) { return a - b; }第五步配置解决平台X86/X64都可以但是这个导出的DLL用户引用的时候尽量和导出时的DLL平台一致且在引用项目配置时要保持一致。第六步配置类型-属性把配置类型变成动态库-应用-确定-生成解决方案。第七步完成动态链接库创建在项目文件中可以找到dll,lib,,h文件我们要的就是这三个第八步创建新项目引用动态链接库添加main函数第九步引用DLL在项目文件下创建两个文件夹后续往里添加三个文件在include文件中添加刚才BH_DLL文件生成的.h文件在lib文件中添加刚才BH_DLL文件生成的dll和lib文件在项目文件夹下再次添加刚才BH_DLL文件生成的dll文件如图所示配置新建项目的目录配置之前一定要检查平台一定要和生成DLL的平台一致然后再配置接下来的文件包含目录包含include库目录包含lib链接器-输入-附加依赖项包含lib文件名称应用-确认。补充这一步原作者忘记说了这里的DLL是要复制到.exe同目录下的第十步将最开始导出的DLL项目中的DLL复制到引用的新项目中x64\Debug\main.exe同目录下复制到下面x64\Deubg\main.exe同目录下否则会报找不到dll至此配置全部完成接下来在main函数中引用#include iostream using namespace std; #include BH_dll.h int main() { cout add(1, 0) endl; cout sub(1, 0) endl; dllH DH; cout DH.div(4, 2) endl; cout DH.mul(4, 2) endl; cout Cadd(1, 0) endl; cout Csub(1, 0) endl; getchar(); return 0; }完成如果有什么请看原作者的博客https://blog.csdn.net/LonelyBHBH/article/details/124422914评论区有很多疑问可以解决这里我只补充了一写然后自己后续学习。