windows编程:LIB和OBJ格式文件解析
文章目录
- OBJ结构
- 解析OBJ代码
- 代码实践
- 小坑之内存对齐
- LIB库
- 成员文件的存储方式
- 解析代码
- 静态库
- 动态库的符号表
- 代码执行
在C++编程过程中,基本的构建过程就是从源代码编译成目标文件(Obj),然后把目标文件再链接成可执行文件或者库,lib静态库就是其中之一。
之前几篇文章讲了链接后的可执行文件(exe)和动态链接库(dll),这两种都是属于PE文件结构。
今天来说说OBJ目标文件和静态库文件LIB。
先看下windows下的obj文件结构。
OBJ结构
OBJ文件是一种叫做COFF的文件类型,而windows下的PE文件结构式COFF的一种扩展。
COFF(Common Object File Format)是 Windows 目标文件(.obj)和 PE 文件的基础格式,主要包含以下结构:
- 文件头
- 节表
- 符号表
- 字符串表
而PE文件结构基本上是把文件头换成Dos文件头和PE文件头。
解析OBJ代码
和解析PE文件一样,可以通过定义结构题来在文件中读取相对应长度的内容到内存中。
// 文件头
struct