首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的DLL文件和它对应的LIB文件有不同的名称?

DLL文件和对应的LIB文件有不同的名称是因为它们在编译和链接过程中扮演不同的角色。

DLL文件(Dynamic Link Library)是一种可执行文件,包含了一组函数、数据和资源,可以被多个应用程序共享使用。它可以被动态加载和链接到应用程序中,提供了代码重用和模块化开发的优势。DLL文件的命名通常与其所提供的功能或模块相关。

LIB文件(Library)是静态库文件,包含了一组已编译的目标代码,可以被应用程序静态链接到可执行文件中。静态链接意味着目标代码会被完整地复制到最终的可执行文件中,使得应用程序不再依赖于外部的库文件。LIB文件的命名通常与其所包含的函数或模块相关。

在编译和链接过程中,通常会先将源代码编译成目标代码,然后将目标代码链接成最终的可执行文件。对于使用DLL的情况,编译器会生成一个导入库(import library),该库文件的名称与DLL文件的名称相同,用于在编译时检查函数的声明和链接时解析函数的地址。因此,导入库的命名通常与DLL文件的命名相同。

总结起来,DLL文件和对应的LIB文件有不同的名称是因为它们在编译和链接过程中扮演不同的角色,DLL文件是可执行文件,LIB文件是静态库文件,它们的命名通常与其所提供或包含的功能或模块相关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

lib文件dll文件区别_dll2lib

动态链接情况下,两个文件:一个是LIB文件,一个是DLL文件LIB包含被DLL导出函数名称和位置,DLL包含实际函数和数据,应用程序使用LIB文件链接到DLL文件。...三. dll文件 3.1 生成.dll文件 新建win32项目,项目名称为SubDLL,解决方案名称为DLLTest,下一步。...012306.png 构建项目(build)/生成解决方案,在项目的debug目录下面会生成很多文件,其中包括.dll和.lib。...造成这种错误原因正是导出函数修饰名称。在dll二进制文件中,经过编译器“加工”,实际上有了不同名称。这也是函数重载机制得以实现一个技术支持。怎么办呢?...如SubDLL.lib和你DEBUG文件对应(这步没有也可以,因为会在上一步路径下寻找)。

2.8K10

libdll 区别与使用, 没有头文件改如何使用

---- 2.生成dll文件 生成dll文件过程与上面的过程是一样,只是在选择Dynamic Library(.dll)即可。在Debug中会生成一个.lib和.dll两种文件。...---- 3.两种文件使用   在使用时,静态链接库只要把.h和.lib文件加入到工程文件夹中即可。而动态链接库要把.h、.lib和.dll文件加入到工程中。...#include #include "sub.h" //链接库文件 using namespaces std; #pragma comment(lib,"sub.lib")...//加入链接库 int main() { sub(5,4); return 0; } 4.仅有.dll文件时候使用方法   在没有.h和.lib文件时,需要函数指针和WIN32...FreeLibrary(hInstLibrary); } dllFunc = (DLLFunc)GetProcAddress(hInstLibrary, "sub");//第二个参数为要调用函数名称

3.4K80
  • MySQL索引为什么用B+Tree?InnoDB数据存储文件和MyISAM不同

    怎么还出来了,存储文件不同?哪怕考察个MVCC机制也行啊。所以这次就好好总结总结这部分知识点。...为什么需要建立索引 首先,我们都知道建立索引目的是为了提高查询速度,那么为什么了索引就能提高查询速度呢? 我们来看一下,一个索引示意图。 ?...经过以上几点分析,MySQL最终选择了B+Tree作为了它索引数据结构。 InnDB数据存储文件和MyISAM不同?...服务器中MySQL存储数据目录是在: /var/lib/mysql/ 进入到这个目录里后,能看到所有数据库目录,新建一个study_test数据库。...然后就进入 /var/lib/mysql/study_test 这个目录下,目前就只有一个文件,这个文件是用来记录创建数据库时配置字符集内容。

    1.6K30

    python文件按回车闪退_为什么python文件夹闪退

    大家好,又见面了,是你们朋友全栈君。 有时候,我们在运行python程序时候会闪退,到底是什么原因呢?python文件是以.py结尾,可以自己在python环境下运行。...对于这种闪退情况,大概可以从以下几个方面分析。 第一步 首先找到我们平时编辑python后,将文件储存所在文件位置,尝试下双击,看是否能打开。...第二步 如果打不开或者闪退,可以尝试选择打开方式,选择Python应用程序或者文本编译器看看是否能够打开文件先尝试了双击,未打开,接着选择打开方式–pthon,还是失败。...然后选择了平时文本编译器Geany,成功打开了命名为comment.py python文件。 第三步 尝试用文本编译器执行该python文件,看看能否运行。结果显示可以成功运行。...如发现本站涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    4.5K40

    RNA-seqfastq文件里面为什么gc含量双峰

    fastq测序数据质控时候 首先fastq测序数据质量控制表格就发现质量差可怜,而且居然GC含量双峰,如下: ?...遇到这样情况,就必须单独看具体每个样本,上面的GC含量图表是项目里面全部样本multiqc汇总图表。 随机抽一个样本fastqc报告看了看,如下: ?...计算机基础知识,把它粗略分成基于R语言统计可视化,以及基于LinuxNGS数据处理: 《生信分析人员如何系统入门R(2019更新版)》 《生信分析人员如何系统入门Linux(2019更新版)》...,熟悉黑白命令行界面,可以仅仅以键盘交互模式完成常规文件夹及文件管理工作。...第2阶段:做到文本文件表格化处理,类似于以键盘交互模式完成Excel表格排序、计数、筛选、去冗余,查找,切割,替换,合并,补齐,熟练掌握awk,sed,grep这文本处理三驾马车。

    1.8K50

    批量导入Excel文件为什么导入数据重复了?

    小勤:大海,为什么从Excel文件夹导入数据重复了? 大海:数据给我来试试看?...Step-01:新建查询-从文件夹 确定后,我们看到文件夹里3个文件: 这里,显然是因为将合并工作表和数据源放在了同一个文件夹下,所以Power Query将合并工作表也显示了出来,并且...实际上,在Excel里虽然只有一份数据,但因为做了不同处理,生成了多种对象(可以简单理解为以多种形式存在),比较容易碰到以下三种情况: Sheet:工作表,就是最原始数据; Table:表格,经过...生成“表格”后,当鼠标选中表中任意数据时,菜单中会出现“表格工具“菜单,也可以在“公式/名称管理器”中查看到。 DefineName:通过“定义名称”定义引用区域,可以在名称管理器里查看到。...大海:是的,即使看上去是同一份数据,实际上Excel为了适应你各种不同需要,系统内自动生成了多种对象,就像复制了好多份让你去用一样,这些内容在通过Power Query或者VBA或者做系统开发(如导入导出

    3K50

    为什么文件名必须和public修饰名称必须一致

    对于一个public类,它是可以被项目中任何一个类所引用,只需在使用它前import一下它所对应class文件即可。...将类名与文件名一一对应就可以方便虚拟机 在相应路径(包名)中找到相应信息。如果不这么做的话,就很难去找,而且开销也会很大。...---- 为什么一个java源文件中只能有一个public类? 答案: 每个编译单元(文件)只能有一个public类。...而且在编译单元内部,可以一个公共(public)类,它必须拥有与文件相同名字(包括大小写形式,但排除.java 文件扩展名)。如果不这样做,编译器就会报告出错。...因此,我们最终从少量.java 文件可能获得数量众多.class 文件

    1.9K30

    WinForms 使用 Image FromFile 方法加载文件和使用 Bitmap 什么不同

    本文来告诉大家使用 GDI+ Image.FromFile 加载图片文件和使用创建 Bitmap 传入图片文件什么不同 如使用下面代码加载图片 using var...using var bitmap = new Bitmap(image); 和使用下面代码加载图片 using var bitmap = new Bitmap(imageFile); 不同在于使用...Image.FromFile 加载图片文件,将会进入默认解码模式,拿到 bitmap 格式是 32 位色,相当于如下代码 var image = bitmap.Clone...(new Rectangle(0, 0, cols, rows), PixelFormat.Format32bppArgb); 而如果是从 Bitmap 创建传入图片文件,那么图片 PixelFormat...就是图片文件自己定义 ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/WinForms-%E4%BD%BF%E7%94%A8-Image

    1K10

    为什么不推荐另外2种快速传几百G文件方法!

    引言 是@程序员小助手 Rman,昨天看到一个题目,说在两台PC之间快速传几百G文件,有没有什么好办法。 考虑到操作系统平台,Windows,Linux,MaxOS,这些都有差异。...参看 两台电脑之间如何快速传输几百G文件?-两台,传输,文件,电脑 ? 这里说说为什么不推荐另外2种。 一个是网络存储。...为什么不推荐,因为pandownload被举报,开发者收监,百度名声臭不可救药。所以不推荐。 国外网速,你我都是知道。 还有一个是,软件共享。 有人说这很简单啊,局域网QQ,不就行了?...回答发出后,不少网友回复说, “直接拔下来硬盘,接到新主机上。新主机启动,挂载为新磁盘,立马可用!” 这个也是经不起推敲。...因为新系统要想识别一块新磁盘,且可以直接“读写数据”,这需要操作系统层面的支持。 也就是说,你windows下存储FAT32格式文件,NTFS格式文件,到了新系统上立马得认出来。

    2.8K10

    使用C语言中文件什么技巧和注意事项吗?为什么不直接包含C文件呢?

    C语言头文件什么用处 在平时项目开发过程中特别是几个项目组在一起工作时候,有的时候代码不是完全开放,这个时候头文件和库作用就体现出来了,在头文件中可以看到这个模块使用结构体,以及静态变量或者定义一些宏...,最主要看到这个模块使用函数列表,同时有些关键函数功能还会在头文件里面做出说明,通常在项目推进过程中就可以通过头文件调用库里面的函数,从而完成单元测试。...刚才说文件是自己设计,这种在平时编程过程中使用场景还是非常多,在引用头文件时候需要注意要写清楚头文件所在目录,避免调用时候找不到头文件,还有一些头文件属于系统自带,比如常见printf...头文件在编译时候里面的宏都会舒展开,为了防止一个文件被包含多次就会在头文件开始位置设置#ifndef 这种字眼就是为了避免重复引用。...当然在实际开发过程中头文件设置成什么样子还和编程能力水平一定关系,在模块设计过程中讲究高内聚低耦合,在模块内部使用函数就不要暴露在头文件中,防止外来操作对模块数据造成破坏,所以在设计头文件时候暴露在外部函数列表是深思熟虑

    1.7K30

    一个文件夹下有很多文件,每一个文件上都有年月日时,现在要根据这个年月日时创建文件夹,并且将这些文件迁移到对应文件夹下,如何处理

    1 问题 一个文件夹下有很多文件,每一个文件上都有年月日时,现在要根据这个年月日时创建文件夹,并且将这些文件迁移到对应文件夹下,如何处理 Java 遍历一个文件夹,获取到后缀是tar.gz 压缩包文件...,压缩包名称是TR_2023060200.tar.gz,然后获取到2023060200这个格式,在当前目录下生成这个时间文件夹,然后将对应压缩包迁移进去这个新建时间文件夹 2 实现 public...//File file = new File("D:\\059\\data\\RAIN_GRIB"); String folderPath = "D:\\source"; // 文件夹路径

    16610

    32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数

    inc文件对应就是函数声明,可以看出,参数类型都是DWORD类型 2.lib文件说明 比如昨天我们编译HelloWord程序,就要手动编译时候,加上对应user32.lib,而user32....lib是保存了dll文件 名字,还有导出函数,所以加载了这个lib,会找对应dll和他导出函数,进而执行我们程序 这里在文件内部使用,所以我们连接时候不用手动去写了 这里lib文件是...动态静态加载 什么意思:   动态就是dll,静态就是dll对应lib,这个lib保存了dll路径信息,还有导出函数信息,当我们连接到EXE中时候,会从lib中拷贝dll路径,以及导出函数...,然后放到exe当中, 当我们调用时候,会根据dll路径,找到对应dll,根据导出函数,调用dll导出函数(比如昨天HELLO信息框)  静态加载:   静态加载则是直接把lib连接到exe当中...我们可以看到,CALL直接成为了地址了,因为代码就在么我们EXE文件中,所以直接在对应地址找到代码执行位置执行即可. ?

    1.4K80

    JNI使用技巧点滴(二)

    大家也许很奇怪,为什么不用CString 做参数,为什么要用最原始char *。原因是这样:在写JNI对应C实现部分时,因为那是在C/C++编译环境下,根本不认识CString这个MFC类。...然后它会生成一个VJString.dll这个DLL文件,同时也会生成一个VJString.lib这个文件,供调用这个DLL程序使用(那个调用程序是静态链接这个dll)。...把dlllib文件拷贝到一个文件夹下。我们此时还可以做一个.h文件,供调用者使用。在这里我们将导出两个方法,在这个文件夹下生成一个VJString.h文件。...但不要高兴太早了。在java控制台里面可以成功,但把它用到jsp页面就失败了,说是找不到本地化方法里面的函数。 后记 我们来通过其他工具,打开JNIDLL.dll看看。 文件名: …….....但现在名字也不是我们所调用名称啊?想情况应该是这样:JNI是本地化方法,要在java虚拟机和其他平台建立起关系,必然她自己一套规则,可能在这里有所体现。

    69020

    磁盘分析工具看到文件夹占用空间很大,可在那个文件夹上右键查看属性,显示大小远小于wiztree看到情况,为什么

    磁盘空间占用分析免费工具有很多,比如wiztree等图片问题:wiztree明明看到文件夹占用空间很大,可在那个文件夹上右键查看属性,显示大小远小于wiztree看到情况分析:在 Windows...中,没有直接命令可以在右键单击文件夹属性时完全隐藏文件大小,当您查看文件夹属性时,Windows 会自动统计文件夹及其子文件夹中所有文件大小,包括隐藏文件。...然而,您可以尝试通过设置文件安全权限来限制其他用户查看这些文件(大小),从而在文件夹属性上(比如文件夹大小、子文件夹/文件数量)做了手脚,但底层空间占用并不会受此影响。...,那些不想让你看到文件在特定权限目录里,因此统计不到大小,导致上层目录统计到大小跟wiztree看到底层大小有出入可以按照这个来稳定制造这种现场c:\testtesttest下面有20个文件、...1个子文件夹test,子文件夹test里6个隐藏文件图片图片图片当我对子文件夹C:\testtesttest\test设定特定权限后,再去看C:\testtesttest属性,统计情况就发生变化了图片图片

    39730

    JNI使用技巧点滴

    如果不加,表明是一般方法。加与不加,生成文件中有一个参数不同。稍后将做说明。 现在开始编译它: 用javac MyNative.h编译它,生成对应class文件。...用javah MyNative ,就会生成对应MyNative.h头文件。剩下是就开始交给VC来完成了(我们用VC来实现对应C实现部分)。 2. 情况: 实例二: package?...对于情况一定要注意这一点,开始时程序始终运行都不成功,问题就出在这里。 javac ....开始时,在这种情况下用javah MyNative生成文件始终是MyNative.h。在网上查资料时,看见别人文件名砸那长,那短。但不知道为什么,现在大家和我一样知道为什么了吧。:)。...注意:一定要把SDK中include文件夹中(和它下面的win32文件夹下文件)几个头文件拷贝到VCinclude文件夹中。

    43810

    Win32编程之静态库编写与使用.动态链接库编写与使用

    每个人编写自己东西.最后组合.   动态链接库.也称为Dll. 为什么了静态库还要有动态链接库. 原因是静态库优缺点.所以才出了动态链接库补充这个缺点. 缺点:   1.代码体积大....名称粉碎是因为C++函数重载概念.所以函数重载其实本质就是名字不一样了而已.C语言没有.所以按照C语言导出....如果熟悉PE应该知道导出函数时候都有一个导出表.而这个导出表则存储着DLL导出函数. PS: 调用约定不同.导出函数函数名就不同....时候.会对应生成lib....我们直接使用这个lib即可. 跟上图使用静态lib库一样. 但是需要注意我们也需要DLL 这个lib库只是辅助信息.并不跟上面你静态库lib一样.上面的静态库lib里面是实质性代码.

    73830

    编译链接过程中出现“无法解析外部符号”,原因及解决办法总结

    具体实现在window下运行时库文件msvcrt.dll中。...》可能是lib没有引入正确,检查路径对不对,名称对不对。...选中项目名称右键——属性——连接器——常规——附加库目录——这里是lib文件所在路径 选中项目名称右键——属性——连接器——输入——附加依赖性——这里是lib文件名称,比如mmpadpater.lib...》也可能是没有把dll文件放到项目目录下面,网上有说放到输出目录说和输出目录平级感觉都可以,连接器会一个一个去找。...理论上64位用32位是没有问题也不知道为什么。 (2)直接把lib文件添加进项目以引入库。 可能是没有把dll文件放进来 也可能是上面的bite问题。

    2.7K10

    .NET Core跨平台奥秘:复用之殇

    从这个意义上讲,Mono和它们并没有本质区别,唯一不同是Mono真正突破了Windows平台藩篱。包括Mono在内这些分支促成了.NET繁荣,但我们都知道这仅仅是一种虚假繁荣而已。...源代码共享通过在不同项目之间共享源文件方式来实现,至于具体采用方式,我们三种不同方案供你选择。...”,所以对于编译后生成程序集App.exe来说,对应程序集引用将包含目标程序集文件名、版本和公钥令牌。...程序编译之后会在 “\bin\Debug” 目录下生成可执行文件App.exe和对应配置文件App.exe.config。...我们顺便来查看一下V2版本程序集Lib.dll清单文件内容。

    1.3K80

    OpenCV配置——在Visual Studio中使用OpenCV

    据说3.x系列会修改较多API名称等,所以建议下载比较新版本。是2.4.10。下载之后将文件解压。...我们在写程序时用到是一些编译好libdll文件,所以只要在程序中添加了头文件,调用了相应函数,然程序运行时能找到相应文件(包括动态库文件即.dll文件和静态库文件,即.lib文件)就可以了。...添加环境变量 添加环境变量是为了让程序在运行时能找到函数对应动态链接库(dll)。...要注意是,OpenCV对于32位程序和64位程序不同dll目录,并且对于不同版本VS,也有不同dll文件目录。...为了使32位程序和64位程序都能编写通过,一般将两者目录下和VS版本对应文件夹下bin目录都加入PATH变量中。

    1.6K10
    领券