.dll文件、.lib文件、.h文件
2020-08-11 本文已影响0人
const_qiu
最基本的静态链接过程如图所示。每个模块的源代码文件(如.c)文件经过编译器编译成目标文件(Object File,一般扩展名为.o或.obj),目标文件和库(Library)一起链接形成最终可执行文件。而最常见的库就是运行时库(Runtime Library),它是支持程序运行的基本函数的集合。库其实是一组目标文件的包,就是一些最常用的代码编译成目标文件后打包存放。
链接过程
- 静态链接:.lib 文件是.c文件编译成的.obj文件的集合,某个.c文件使用.lib 中的函数或变量时,需要#include对应的文件头,编译该.c文件成.obj 文件,头文件包含了被引用函数的地址信息(函数名),然后链接时就能在对应的目标obj 中找到正确的地址。
- 动态链接: lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容。DLL和LIB文件必须随应用程序一起发行,否则应用程序会产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32 API函数LoadLibrary、GetProcAddress装载。
- pragma comment(lib,xxx.lib)
导出表
导出表,给别的.exe文件使用
导入表