太原做网站哪家公司好,网站开发 博客,网站开发方案服装网站简介,中国建设网站简州新城土地整改项目1 引言
静态链接库是在编译时被链接到程序中的库文件#xff0c;在编译时#xff0c;链接器将静态链接库的代码和数据复制到最终的可执行文件中。动态链接库是在程序运行时加载的库文件#xff0c;在编译时#xff0c;可执行文件只包含对动态链接库的引用#xff0c;而不…1 引言
静态链接库是在编译时被链接到程序中的库文件在编译时链接器将静态链接库的代码和数据复制到最终的可执行文件中。动态链接库是在程序运行时加载的库文件在编译时可执行文件只包含对动态链接库的引用而不包含实际的库代码和数据。静态链接库占更多存储内存程序比较大动态链接库占更多运行内存。
2 动态链接库封装步骤
① 新建一个“封装”工程取名为DLLPackage。 ② 新建一个头文件和一个源文件。 ③ 在头文件声明动态链接库的导入或者导出以及DLL里面可调用的函数 代码解释说明 #pragma once的作用用于确保头文件只被编译一次。 如果在源文件中定义了宏MyDLL_EXPORT则导出动态链接库供其它程序调用如果没有定义宏MyDLL_EXPORT 则导入动态链接库调用动态链接库的函数。此时源文件中未定义宏MyDLL_EXPORT所以代码的高亮部分是else里面的内容。在MyDLL中声明一个加法函数add。在MyDLL中声明一个类MyFun类里面减法函数substration。注声明的时候class在MyDLL前否则会报错。
④ 源文件中定义宏以及对应的函数和类 代码解释说明
定义宏 MyDLL_EXPORT此时头文件中高亮的是if里面的内容 包含头文件注必须先定义宏再#include头文件int add() 定义一个加法函数int MyFun::subtraction定义类里面的一个减法函数
⑤ 生成动态链接库
1右键项目选择属性 2将配置类型改成动态库(.dll)同时可设置动态链接库的输出路径不设置则输出至默认路径 (3点击生成解决方案。 3 动态链接库调用步骤
3.1 调用简介
调用动态链接库需要三个文件
① 头文件.h② .dll③ .lib .lib 文件 .lib 文件是动态链接库的导入库文件 import library file 。它包含了函数和变量的声明以及链接信息但不包含实际的函数代码。当你在代码中调用动态链接库的函数时编译器会使用 .lib 文件来查找函数的声明和链接信息以便在程序运行时能够正确地调用动态链接库中的函数。 .dll 文件 .dll 文件是动态链接库的实际二进制文件它包含了函数的实际代码和数据。在程序运行时操作系统会动态加载 .dll 文件并将其中的函数代码映射到程序的地址空间中以便程序可以调用动态链接库中的函数。 3.2 调用步骤
① 新建一个“调用”工程 DLLCall 同时新建一个头文件和源文件。 ② 将动态链接库的头文件放到DLLCall工程里。 ③ 将.dll文件和.lib文件放到.exe的同目录下。比如设置的是Debugx64就放在x64/Debug路径下路径查找可参考博文VS里面执行文件默认存放路径梳理——C语言-CSDN博客。 ④ 链接到动态链接库的路径在附加库目录里添加.dll和.lib文件的存放目录 ⑤ 附加依赖项里添加.lib文件的名称 ⑥ 在头文件里#include动态链接库的头文件。 ⑦ 测试验证 运行结果如下 4 其它小技巧
介绍一种动态链接库封装和调用联动小技巧 。上述步骤每次“封装” 工程生成的动态链接库都需要手动复制到“调用”工程的exe文件的同目录下为了更加方便地操作可以将生成动态链接库的输出路径设置成“调用”的exe文件的同目录这样当“封装”里的头文件不变时更改代码后点击一下“封装”里的生成就可以在“调用”里面运行了可以大大提高调试效率