DLL和LIB的关系?问题解决立即给分!在线等 那位大侠给讲一下DLL和DLL的import库LIB文件有什么关系? LIB文件里装的都是什么东西? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LIB的东西将会放到EXE文件中DLL则不会。 dll是可执行文件的一种格式,是由exe文件来加载并执行的lib只是一种二进制文件,记录的是dll中所导出的函数的信息,用于当你在应用中使用静态加载dll库时(即不通过LoadLibrary和GetProcAddress来加载并使用函数),连接器能够定位使用了该lib库所对应的dll中的相应函数,如果连接器无法定位,则连接器就会报错 动态链接库(DLL)由可执行模块组成,为进程提供数据、代码和资源。编译时使用的静态链接库不同的是,动态链接库独立于激活它们的可执行文件,调用的地址转换是在加载 时解决的。这使DLL的故障查找和小的修改比较简单,不必重新编译调用它们的可执行模块。 Visual Studio提供AppWizard生成MFC DLL。给出名字和目录信息后,AppWizard还要求一个关键信息:DLL类型。可选的类型包括:MFC DLL静态链接的常规DLL(Regular DLL with MFC statically linked),使用共享MFC DLL的常规DLL(Regular DLL using shared MFC DLL)和MFC扩充DLL(MFC Extension DLL(using shared MFC DLL))。因此,常把MFC DLL基本上分成两个类型: .常规DLL 可能包含MFC类,但导出不使用MFC派生类的函数。常规DLL可以链接MFC和C运行时间静态库或动态库。 .MFC扩充DLL 包含从MFC类派生的可公共访问的类的DLL,被称为AFX扩充DLL或AFX DLL。AFC DLL是唯一可发布MFC派生类供其它DLL或可执行模块用的DLL。扩充DLL以及使用它们的模块需要与MFC库的DLL版本链接,实际上,也要求与C运行库的DLL版本链接。扩充DLL通过与MFC库的DLL版本的链接,可以导出窗口类、消息映射和动态(可串行化的)对象。 一、开发和使用DLL需注意三种文件 1、 DLL头文件(.H) 它是指DLL中说明输出的类或符号(Symbols)原型或数据结构的.H文件。当其它应用程序调用DLL时,需要将该文件包含入应用程序的源文件中。 2、 DLL的引入库文件(.LIB) 它是DLL在编译、链接成功后生成的文件。主要作用是当其它应用程序调用DLL时,需要将该文件引入应用程序。否则,DLL无法引入。 3、 DLL文件(.DLL) 它是应用程序调用DLL运行时,真正的可执行文件。DLL应用在编译、链接成功后,.DLL文件即存在。开发成功后的应用程序在发布时,只需要有.EXE文件和.DLL文件,不必有.LIB文件和DLL头文件。 lib在静态连接时使用,形象一点,可以看成一种"头文件".相应的dll可以看成"实现文件(二进制级别)".如果动态连接时不需要lib. Earthdog(没有女朋友,郁闷!) ( ) 信誉:100 2003-11-26 21:05:00 得分:0 wqs6(竹山)讲的已经挺清楚了 不好意思了 各位 这两天忙 才来结帖 谢谢各位了!谢谢 Earthdog(没有女朋友,郁闷!) ,讲得很详细谢谢 wqs6(竹山) 给我贴了很长谢谢up的朋友! 一个按钮点了开始,怎么让另外一个按钮点停止。 关于远程屏幕监视.... 请问VC中怎么实现 Telnet 客户端????? 怎样使用编辑框输出的一串汉字中的一个为红色,其他的汉字不变色 CListCtrl的问题,在线等 关于用非模态对话框显示数据的问题 鼠标位置问题!!!!! 急!!! 小问题,大麻烦。 那里有com的资料. 哪位兄弟给个VC++连接SYBASE数据库的代码 初学者的困惑! 高分求助!
DLL则不会。
lib只是一种二进制文件,记录的是dll中所导出的函数的信息,用于当你在应用中使用静态加载dll库时(即不通过LoadLibrary和GetProcAddress来加载并使用函数),连接器能够定位使用了该lib库所对应的dll中的相应函数,如果连接器无法定位,则连接器就会报错
Visual Studio提供AppWizard生成MFC DLL。给出名字和目录信息后,AppWizard还要求一个关键信息:DLL类型。可选的类型包括:MFC DLL静态链接的常规DLL(Regular DLL with MFC statically linked),使用共享MFC DLL的常规DLL(Regular DLL using shared MFC DLL)和MFC扩充DLL(MFC Extension DLL(using shared MFC DLL))。因此,常把MFC DLL基本上分成两个类型:
.常规DLL 可能包含MFC类,但导出不使用MFC派生类的函数。常规DLL可以链接MFC和C运行时间静态库或动态库。
.MFC扩充DLL 包含从MFC类派生的可公共访问的类的DLL,被称为AFX扩充DLL或AFX DLL。AFC DLL是唯一可发布MFC派生类供其它DLL或可执行模块用的DLL。扩充DLL以及使用它们的模块需要与MFC库的DLL版本链接,实际上,也要求与C运行库的DLL版本链接。扩充DLL通过与MFC库的DLL版本的链接,可以导出窗口类、消息映射和动态(可串行化的)对象。
一、开发和使用DLL需注意三种文件
1、 DLL头文件(.H)
它是指DLL中说明输出的类或符号(Symbols)原型或数据结构的.H文件。当其它应用程序调用DLL时,需要将该文件包含入应用程序的源文件中。
2、 DLL的引入库文件(.LIB)
它是DLL在编译、链接成功后生成的文件。主要作用是当其它应用程序调用DLL时,需要将该文件引入应用程序。否则,DLL无法引入。
3、 DLL文件(.DLL)
它是应用程序调用DLL运行时,真正的可执行文件。DLL应用在编译、链接成功后,.DLL文件即存在。开发成功后的应用程序在发布时,只需要有.EXE文件和.DLL文件,不必有.LIB文件和DLL头文件。
wqs6(竹山)讲的已经挺清楚了
谢谢
Earthdog(没有女朋友,郁闷!) ,讲得很详细
谢谢
wqs6(竹山) 给我贴了很长
谢谢up的朋友!