c++中h文件和lib有什么区别
h和lib里面都能定义函数吧,我就不知道他们的区别是什么?另外怎么包含lib文件。。嘻嘻两个问题。...
h和lib里面都能定义函数吧,我就不知道他们的区别是什么?
另外怎么包含lib文件。。
嘻嘻两个问题。 展开
另外怎么包含lib文件。。
嘻嘻两个问题。 展开
展开全部
1.lib:是若干个obj的集合,本质与obj相同!
lib有静态lib和动态lib之分。
静态lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序.
动态lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相 应的dll文件支持.
lib文件是不对外公开的,不能查看一个编译过后的文件
静态库(lib)的调用需要头文件(#include ".h")和添加库文件(.lib),添加库文件可以利用开发环境添加,也可以代码添加:#pragma comment(lib,"lib//tlib.lib"
编程中,添加lib文件的常用办法有二个:
把*.lib放在VC的Lib目录中
修改project setting的Link->Input中的Addtional library path,加入目录
2.h: 是头文件,也可算是源代码,因为当CPP中用#include时,会把包含的文件的内容在CPP中扩展开!
h文件是用来编写函数(类,变量类型)原型声明的,通常dll、lib和obj的使用需要有h文件的配合,以获得二进制代码的原型声明
3.dll:是可实际运行的二进制代码,有定位代码的!
DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执 行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。
DLL内的函数分为两种:(1)DLL导出函数,可供应用程序调用;
(2)DLL内部函数,只能在DLL程序使用,应用程序无法调用它们
要导出 DLL 函数,您可以向导出的 DLL 函数中添加函数关键字,也可以创建模块定义文件 (.def) 以列出导出的 DLL 函数。
lib有静态lib和动态lib之分。
静态lib将导出声明和实现都放在lib中。编译后所有代码都嵌入到宿主程序.
动态lib相当于一个h文件,是对实现部分(.dll文件)的导出部分的声明。编译后只是将导出声明部分编译到宿主程序中,运行时候需要相 应的dll文件支持.
lib文件是不对外公开的,不能查看一个编译过后的文件
静态库(lib)的调用需要头文件(#include ".h")和添加库文件(.lib),添加库文件可以利用开发环境添加,也可以代码添加:#pragma comment(lib,"lib//tlib.lib"
编程中,添加lib文件的常用办法有二个:
把*.lib放在VC的Lib目录中
修改project setting的Link->Input中的Addtional library path,加入目录
2.h: 是头文件,也可算是源代码,因为当CPP中用#include时,会把包含的文件的内容在CPP中扩展开!
h文件是用来编写函数(类,变量类型)原型声明的,通常dll、lib和obj的使用需要有h文件的配合,以获得二进制代码的原型声明
3.dll:是可实际运行的二进制代码,有定位代码的!
DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执 行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。
DLL内的函数分为两种:(1)DLL导出函数,可供应用程序调用;
(2)DLL内部函数,只能在DLL程序使用,应用程序无法调用它们
要导出 DLL 函数,您可以向导出的 DLL 函数中添加函数关键字,也可以创建模块定义文件 (.def) 以列出导出的 DLL 函数。
展开全部
h是编写程序所需要的头文件,而lib是程序运行时需要的库文件,如果有些库文件不装载是不能运行的!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
h是头文件, 纯文本, 头文件中不是定义函数, 是声明
lib是编译好的二进制机器码, 链接用
包含lib文件, 要看是什么链接器, 如果gcc, 首先路径要包含, 然后加-l参数
比如abc.dll, 那就是gcc -o target.exe "source.o" -labc
lib是编译好的二进制机器码, 链接用
包含lib文件, 要看是什么链接器, 如果gcc, 首先路径要包含, 然后加-l参数
比如abc.dll, 那就是gcc -o target.exe "source.o" -labc
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询