dll动态链接是什么,怎么判断dll有没有被加载

首页 > 实用技巧 > 作者:YD1662024-02-18 09:58:24

动态链接库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)项目

dll动态链接是什么,怎么判断dll有没有被加载(1)

2、填写项目名称和解决方案名称

dll动态链接是什么,怎么判断dll有没有被加载(2)

3、添加头文件pch.h和源文件pch.cpp

dll动态链接是什么,怎么判断dll有没有被加载(3)

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

dll动态链接是什么,怎么判断dll有没有被加载(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.