`

lib,dll区别

    博客分类:
  • C++
 
阅读更多
目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。

静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子。

动态库一般会有对应的导入库,方便程序静态载入动态链接库,否则你可能就需要自己LoadLibary调入DLL文件,然后再手工GetProcAddress获得对应函数了。有了导入库,你只需要链接导入库后按照头文件函数接口的声明调用函数就可以了。

导入库和静态库的区别很大,他们实质是不一样的东西。静态库本身就包含了实际执行代码、符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息。
分享到:
评论

相关推荐

    H LIB DLL文件的区别月联系

    ### H LIB DLL 文件的区别与联系 #### 概述 在软件开发过程中,程序员经常会接触到`.h`、`.lib`和`.dll`等不同类型的文件。这些文件分别在编译、链接以及运行时扮演着不同的角色。理解它们之间的区别与联系对于...

    dll和lib的区别

    dll和lib的区别 dll和lib是两种不同的文件格式,用于存储和管理代码,但它们之间存在着一些关键的区别。 首先,dll(Dynamic Link Library)是一个已经链接的完整程序,它包含了导出表和导入表,且不存在同名引用...

    无水印的pdflib动态库 pdflib.dll

    这个“无水印”的 pdflib.dll 文件是 PDFlib 动态链接库的无标记版本,意味着它不包含任何开发者的标识或水印,可以用于商业或个人项目中生成 PDF 而不用担心版权问题。 PDFlib 提供了丰富的功能,包括: 1. **创建...

    dll文件转换为lib

    在Windows操作系统中,DLL(Dynamic Link Library)文件和LIB(Library)文件是两种常见的程序链接资源。DLL文件包含了可执行代码和数据,可供多个程序共享使用,而LIB文件则通常是静态链接库,用于编译时链接到应用...

    opencv2.0中的lib和dll,跑别人程序时可能会用到,到处找后整理起来的

    2.0:lib:cv200.lib; cv200d.lib; cvaux200.lib; cvaux200d.lib; cxcore200.lib; cxcore200d.lib; cxts200.lib; cxts200d.lib; highgui200.lib; highguid.lib; ml200.lib; ml200d.lib; dll:cv200.dll; cv200d...

    DLL转Lib工具

    在编程世界中,动态链接库(DLL)和静态链接库(LIB)是两种常见的库文件类型,它们在软件开发中起着至关重要的作用。DLL文件允许程序共享代码和资源,而LIB文件则用于链接器在编译时将函数和变量连接到可执行文件。...

    lib 和 dll 封装及使用

    2. **创建头文件**:创建头文件(例如:libdll.h),声明 dll 中的导出函数。 3. **使用 __declspec(dllexport)**:使用 `__declspec(dllexport)` 关键字标记需要导出的函数,表示该函数可以在其他地方被调用。 4. **...

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

    "静态链接库lib和动态链接库dll区别" 静态链接库lib和动态链接库dll都是共享代码的方式,但它们有着根本的区别。静态链接库lib是将库中的所有指令都包含在最终生成的EXE文件中,而动态链接库dll则不必被包含在最终...

    DLL2LIB.zip

    在IT行业中,动态链接库(DLL)和静态链接库(LIB)是Windows操作系统下程序开发的重要组成部分。DLL文件允许多个程序共享同一段代码和数据,从而节省系统资源,而LIB文件则是与DLL相配合,提供了链接器所需的信息,...

    LibTools-Viewer1.0 windows lib dll库函数查看器

    《LibTools-Viewer1.0:Windows环境下DLL库函数查看器详解》 在软件开发过程中,尤其是涉及到系统级编程或者需要调用特定库函数时,理解库函数的使用至关重要。LibTools-Viewer1.0是一款专为Windows平台设计的...

    MqttLib.dll

    C# MQTT Client的函数库文件,方便使用C#快速完成mqtt开发。

    dll导出lib工具

    《DLL导出LIB工具详解与应用》 在Windows操作系统中,动态链接库(Dynamic Link Library,简称DLL)是一种可执行文件格式,它包含了可供其他程序调用的函数和数据。DLL有助于减少内存占用,便于代码共享,是软件...

    dll2lib dll转化成lib文件

    在Windows操作系统中,动态链接库(DLL)和静态链接库(LIB)是两种常见的库文件类型。DLL文件包含了可执行代码和数据,可供多个程序共享,而LIB文件主要用于编译时链接,它提供了函数和变量的引用。当我们需要将一...

    dll2lib dlltolib转换工具

    在Windows操作系统中,动态链接库(DLL)和静态链接库(LIB)是两种常见的库文件类型,它们在软件开发过程中起着至关重要的作用。DLL文件是包含可执行代码和数据的共享库,而LIB文件则有不同的用途,根据类型分为...

    pdflib.dll

    pdflib.dll ,pdf 插件,懂的人会用

    OpenCV-4.7.0 lib 与 dll 文件

    在本文中,我们将深入探讨OpenCV 4.7.0版本,特别是与Visual Studio 2015(VS2015)相关的lib和dll文件,以及它们在C++开发中的应用。 首先,OpenCV 4.7.0是OpenCV库的一个较新版本,它提供了一系列改进和新功能。...

    编译好的libssl.lib,libcrypto.lib 包含lib,dll,头文件

    标题中的“编译好的libssl.lib,libcrypto.lib 包含lib,dll,头文件”指的是一份包含了OpenSSL库的编译结果,主要针对的是Windows平台。OpenSSL是一个强大的安全套接层(SSL)密码库,包含了各种主要的密码算法、...

    mysql(lib、dll)文件资源.rar

    32位和64位的MySQL库,包含libmysql.lib和libmysql.dll文件。 libmysql.dll文件是MySQL的动态链接库文件,缺少此文件数据库无法正常工作。 lib库是编译时要用到的,dll是运行时要用到的,要不lib库拷贝到当前的程序...

    DLL导出生成lib文件

    在某些情况下,我们可能遇到没有.lib文件但只有.dll的情况,这时就需要手动生成.lib文件。"DLL导出生成lib文件"的主题就围绕如何解决这个问题。 在VC++(Visual C++)环境下,开发者可以使用`dumpbin`或`pexports`...

    学习OpenGL要用到的各种LIB及DLL文件及头文件

    同时,理解动态链接库(DLL)和静态链接库(LIB)的区别,以及如何在项目中正确引入头文件,是软件开发的基础知识。在实际编程中,你可能需要根据项目需求选择合适的链接方式,并确保系统路径中包含这些库文件,以便...

Global site tag (gtag.js) - Google Analytics