`

动态链接库与静态链接库

    博客分类:
  • c++
 
阅读更多
动态链接库(DLL)是windows操作系统的基础,通常都不能直接运行,也不能接收消息.它们是一些独立的文件,其中包含能被可执行程序或其它DLL调用来完成某项工作的函数,只有在其它函数调用动态链接库时,它才发挥作用.

Windows API中所有函数都包含在DLL中,其中有3个最重要的DLL,Kernel32.dll,它包括用于管理内存,进程和线程的各个函数,User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数,GDI32.dll,它包含用于画图和显示文本的各个函数.

静态库(lib):函数和数据被编译进一个二进制文件(通常扩展名为.LIB).在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据的代码把它们和应用程序的其它模块组合起来创建最终的可执行文件(.exe文件).

在使用动态链接库的时候,往往提供两个文件:一个引入库和一个DLL.引入库包含被DLL导出的函数和变量的符号名,DLL包含实际的两函数和数据.在编译链接可执行文件时,只需要链接引入库,DLL中的函数代码和数据并不复制到可执行文件中,在运行的时候,再去加载DLL,访问DLL导出的函数

使用动态链接库的好处:
1.可以采用多种编程语言来编写
2.增强产品的功能
3.提供二次开发的平台
4.简化项目管理
5.可以节省磁盘空间和内存
6.有助于资源的共享
7.有助于实现应用程序的本地化
分享到:
评论

相关推荐

    动态链接库与静态链接库 的区别

    ### 动态链接库与静态链接库的区别 在软件开发领域,链接库是软件构建过程中不可或缺的一部分,它们有助于提升代码的复用性、模块化以及性能优化。链接库大致可以分为两大类:静态链接库(Static Library)和动态...

    动态链接库与静态链接库的详细解释_经典.zip

    动态链接库dll与静态链接库lib的详细解释 DLL调用的两种方式

    linux qt 动态链接库 静态链接库.pdf

    Linux Qt 动态链接库与静态链接库 Linux Qt 动态链接库与静态链接库是 Linux 平台下的库链接机制,分别用于动态链接和静态链接。本文将详细介绍 Linux Qt 动态链接库和静态链接库的概念、实现原理、使用方法和 Qt ...

    vs2015编译最新openssl-1.1.1 非命令行nmake 可轻松编译出动态链接库与静态链接库 包含完整项目配置文件 里面有详细项目说明 适合学习修改

    这两个项目修改项目属性为静态链接库lib,生成静态库,项目属性改为动态链接库dll,添加def文件,就可以生成动态库 libapps项目 生成libapps.lib openssl.exe需要,一直静态就可以 openssl项目 生成openssl.exe ...

    linux动态链接库的开发实例

    动态链接库与静态链接库(.a文件)的主要区别在于,静态链接库在编译时会将库中的代码合并到可执行文件中,而动态链接库则在程序运行时才加载到内存中。这使得动态链接库可以被多个进程共享,降低了程序的体积。 二...

    静态、动态链接库的创建和调用

    静态链接库在编译时期与应用程序链接,而动态链接库则在运行时期加载。 首先,我们来谈谈静态链接库。创建静态库的过程中,我们需要一个项目,通过添加需要封装成库的代码文件(例如C/C++文件)。创建完成后,编译...

    动态链接库和静态链接库区别

    动态链接库(Dynamic Link Library, DLL)和静态链接库(Static Link Library, SLB)是Windows操作系统中两种常见的库文件类型,它们在程序编译和运行时起着至关重要的作用。理解二者的区别有助于我们更好地进行软件...

    C++ 静态链接库与动态链接库

    链接库分为静态链接库(Static Library)和动态链接库(Dynamic Link Library,简称DLL)。这两种库各有其特点和适用场景,下面我们将深入探讨它们的创建过程、工作原理以及它们在实际项目中的应用。 **静态链接库*...

    Linux下使用动态链接库和静态链接库的项目建立及单步调试

    对于静态链接库,其构建过程与动态链接库有所不同。静态链接库在编译阶段被链接到可执行文件中,因此无需在运行时进行额外的加载步骤。静态链接库通常由多个`.o`目标文件组成,并使用`ar`命令创建。 1. **创建静态...

    VC++的动态链接库

    动态链接库与静态链接库的主要区别在于,静态链接库的代码会在编译时被合并到可执行文件(EXE)中,而动态链接库则在运行时加载。 动态链接库具有以下特点: 1. **DLL的基础概念**:DLL可以看作是一个包含可重用...

    DLL.rar_link_mfc 静态库_动态链接库_链接库

    动态链接库与静态链接库相反,它是在程序运行时才加载到内存中。多个程序可以共享同一DLL文件,节省系统资源。DLL文件通常包含函数和数据,供其他程序调用。"dllTest"和"dllCall"这样的文件可能是实现特定功能的DLL...

    linux下静态链接库和动态链接库编译和使用[1].pdf

    在Linux环境下,程序员经常...总之,理解和掌握静态链接库与动态链接库的编译和使用是Linux系统编程中的基础技能,这有助于优化程序性能和资源管理。通过实践这些步骤,开发者可以更好地控制程序的依赖性和可移植性。

    静态链接库与动态链接库的区别

    ### 静态链接库与动态链接库的区别 在软件开发过程中,经常需要使用到库文件,这些库文件可以分为两大类:静态链接库(Static Library)和动态链接库(Dynamic Library)。这两种库的主要功能都是为了重用代码,...

    linux动态链接库示例

    6. **动态链接与静态链接**:动态链接库与静态链接库(`.a`文件)的主要区别在于,静态链接会在编译时将库中的代码合并到可执行文件中,而动态链接则是在程序运行时才加载库。因此,静态链接的程序更大,但不需要...

    静态加载动态链接库

    静态加载动态链接库是与运行时动态加载相对的一种方式,它在编译时就将DLL的功能整合到可执行文件中,使得程序在启动时无需额外查找和加载DLL。 静态加载动态链接库通常通过.lib文件实现。.LIB文件是静态链接库,它...

    动态链接库及静态链接库(windows下的.dll .lib和linux下的.so .a).docx

    动态链接库及静态链接库(Windows下的.dll .lib和Linux下的.so .a) 动态链接库和静态链接库是两种不同的库文件类型,它们在编译和链接过程中扮演着重要的角色。下面我们将详细探讨这两种库文件的特点和使用方法。 ...

    简单的代码来说明动态链接库,静态链接库

    动态链接库(DLL)和静态链接库(LIB)是Windows操作系统中两种常见的库文件类型,它们在软件开发中起着至关重要的作用。本篇文章将深入探讨这两种库的区别、生成过程以及如何在实际项目中使用。 首先,我们来看...

    Linux C静态链接库与动态链接库编程简单介绍

    在Linux系统中,C语言的库分为静态链接库和动态链接库两种类型,它们都是为了实现代码重用和模块化设计的重要工具。本篇文章将深入浅出地介绍这两种链接库的原理、创建方法以及如何在程序中使用。 一、静态链接库 ...

Global site tag (gtag.js) - Google Analytics