动态链接库DLL动态链接库
动态链接库 , Dynamic Link Library或者Dynamic-link Library,DLL , 是一个模块,其中包含其他模块 (应用程序或DLL) 可以使用的函数和数据 。
DLL可以定义两种类型的函数,导出函数和内部函数,导出函数旨在由其他模块调用,以及定义它们的DLL内部调用,内部函数通常仅用于定义内部的DLL调用,尽管DLL可以导出数据,但其数据通常仅由其函数使用,但是 , 无法阻止另一个模块读取或写入该地址 。
DLL提供了模块化应用程序的方法,以便可以更轻松地更新和重复使用其功能,当多个应用程序同时使用相同的功能时,DLL也有助于降低内存开销 , 尽管每个应用程序都收到自己的 DLL 数据副本,但应用程序共享DLL代码 。
Windows API
Windows API,应用程序编程接口,是程序与处理器接口的命令集,实现为一组DLL,使用Windows API的任何进程都使用动态链接 。
Visual Studio 2022的创建与使用创建动态链接库项目
1、新建项目,动态连接库(DLL)项目
文章插图
2、填写项目名称和解决方案名称
文章插图
3、添加头文件pch.h和源文件pch.cpp
文章插图
pch.h
#ifndef PCH_H#define PCH_H// 添加要在此处预编译的标头#include "framework.h"#endif //PCH_H//ifdef , 如果IMPORT_DLL已经定义过了,则执行else前面的,如果未定义,则执行else后面的#ifdef IMPORT_DLL#else//允许将其给外部调用#define IMPORT_DLL extern "C" _declspec(dllimport)#endif IMPORT_DLL int max_number(int a, int b);IMPORT_DLL int min_number(int a, int b);
pch.cpp// pch.cpp: 与预编译标头对应的源文件#include "pch.h"// 当使用预编译的头时,需要使用此源文件,编译才能成功 。int max_number(int a, int b){ if (a >= b) {return a; } return b;}int min_number(int a, int b){ if (a < b) {return a; } return b;}
4、选中项目,右键 , 生成,生成文件Dll1.dll文章插图
动态链接库的使用
1、添加空项目
文章插图
2、填写项目名称
文章插图
3、添加源文件Main.cpp
#include <iostream>#include <windows.h>using namespace std;int main() { //调用DLL HINSTANCE hDllInst = LoadLibrary(L"Dll1.dll"); //后边为参数,前面为返回值 typedef int(*PLUSFUNC)(int a, int b); PLUSFUNC max_number = (PLUSFUNC)GetProcAddress(hDllInst, "max_number"); PLUSFUNC min_number = (PLUSFUNC)GetProcAddress(hDllInst, "min_number"); cout << "最大值为:" << max_number(3333, 44444) << endl; cout << "最小值为:" << min_number(3333, 44444) << endl; system("pause"); return 0;}
【一键查看dll函数接口 dll动态链接库怎么用】4、设置为启动项目,运行以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- WIN7系统如何查看隐藏的文件和文件夹
- DOS命令行中如何查看输入命令的历史记录
- 如何查看电脑型号
- 新Unity软件中如何高效查看和管理收藏夹SEO技巧
- 如何查看钉钉在线课堂数据
- 如何查看和管理电脑中已安装的软件
- 如何卸载一键还原精灵,释放更多磁盘空间
- 度划算查看物流服务 度划算怎么查看物流
- 如何利用今日头条查看文章的阅读量和收入情况
- 如何查看电脑开关机时间