`
lobin
  • 浏览: 427281 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

对象文件结构的分析:VC

 
阅读更多

我们在Windows下编程时,如我们在VC下开发C/C++程序,程序写完后再经编译、链接生成可运行的程序。在编译时通常会生成一个obj对象文件,这个obj对象文件是什么文件呢?它里边包括哪些信息?

 

该obj对象实际上是一个COFF格式的文件,它是一种公共对象文件格式文件(Common Object File Format)。

 

一个简单的例子

写道
>od -A x -t x1 simpletest.obj

 



 

 

000000 4c 01 02 00 fb 50 f1 5c 8f 00 00 00 08 00 00 00

000010 00 00 00 00 2e 64 72 65 63 74 76 65 00 00 00 00

000020 00 00 00 00 26 00 00 00 64 00 00 00 00 00 00 00

000030 00 00 00 00 00 00 00 00 00 0a 10 00 2e 74 65 78

000040 74 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00

000050 8a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

000060 20 00 50 60 2d 64 65 66 61 75 6c 74 6c 69 62 3a

000070 4c 49 42 43 20 2d 64 65 66 61 75 6c 74 6c 69 62

000080 3a 4f 4c 44 4e 41 4d 45 53 20 55 8b ec 5d c3 2e

000090 66 69 6c 65 00 00 00 00 00 00 00 fe ff 00 00 67

0000a0 01 73 69 6d 70 6c 65 74 65 73 74 2e 63 00 00 00

0000b0 00 00 00 40 63 6f 6d 70 2e 69 64 e8 1f 0a 00 ff

0000c0 ff 00 00 03 00 2e 64 72 65 63 74 76 65 00 00 00

0000d0 00 01 00 00 00 03 01 26 00 00 00 00 00 00 00 00

0000e0 00 00 00 00 00 00 00 00 00 2e 74 65 78 74 00 00

0000f0 00 00 00 00 00 02 00 00 00 03 01 05 00 00 00 00

000100 00 00 00 56 e8 2b 67 00 00 00 00 00 00 5f 6d 61

000110 69 6e 00 00 00 00 00 00 00 02 00 20 00 02 00 04

000120 00 00 00

 

0-1 4C 01 表示机器类型:Intel 386 or later processors and compatible processors 

2-3 02 00  段(section)的个数、

5-7 FB 50 F1 5C  从00:00 January 1, 1970 (a C run-time time_t value)到现在的秒数(低32位)

8-11 8F 00 00 00 COFF符号表的起始偏移位置

12-15 08 00 00 00 符号的个数

16-17 00 00  Optional头部的大小

18-19 00 00 文件属性

 

20-59

2E 64 72 65  63 74 76 65 00 00 00 00

00 00 00 00 26 00 00 00  64 00 00 00 00 00 00 00

 

00 00 00 00 00 00 00 00  00 0A 10 00 

第1个段(section)

20-27

2E 64 72 65  63 74 76 65  段名称(.drectve

28-31

 

00 00 00 00 段加载到内存的大小

 

60-99

2E 74 65 78

74 00 00 00 00 00 00 00  00 00 00 00 05 00 00 00

8A 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

 

20 00 50 60 

第2个段(section)

  • 大小: 12.2 KB
0
0
分享到:
评论

相关推荐

    vc读取bin文件

    在VC++开发环境中,"vc读取bin文件"是一个常见的任务,特别是在处理二进制数据或者需要从外部加载配置或资源时。MFC(Microsoft Foundation Classes)是VC++的一个库,提供了一套面向对象的API,用于构建Windows应用...

    《vc精华文摘-文件篇》.rar_VC 文件

    《VC精华文摘-文件篇》是一份针对Visual C++(简称VC)编程中关于文件操作的综合资料,涵盖了各种与文件操作相关的知识点。在Windows应用程序开发中,理解和掌握文件处理是至关重要的,因为文件是数据持久化的主要...

    VC精彩案例237(VC的237个经典案例)

    9. **文件操作**:VC提供了丰富的文件操作API,包括读写文本文件、二进制文件、文件流等,案例会展示如何高效地处理文件数据。 10. **动态链接库(DLL)**:DLL是Windows平台上的一个重要特性,允许代码和资源的...

    vc文件管理器

    "VC文件管理器"是一款基于Microsoft Visual C++(VC++)开发的小型应用程序,它利用MFC(Microsoft Foundation Classes)库来构建用户界面和实现文件管理功能。MFC是微软提供的一套C++类库,它封装了Windows API,...

    Excel文件操作 数据库 vc 源码

    1. **Excel自动化(Automation)**: VC可以通过自动化技术调用Excel的API,创建Excel对象,打开、修改和保存Excel文件。例如,可以创建一个Excel实例,打开指定的文件,然后使用工作表对象来读写单元格数据。自动化...

    VC读取.shp文件源码

    在VC中处理`.shp`文件,我们需要了解其文件结构,包括头部信息、几何记录头、几何体数据以及可能的属性数据。 1. 文件结构理解:`.shp`文件以固定的32字节头部开始,包含文件类型、形状类型、文件长度等信息。接...

    VC文件后缀

    ### VC文件后缀详解 #### 1. .APS:资源辅助文件 - **用途**:存储二进制资源的中间文件。在Visual C++(以下简称VC)开发环境中,当资源文件转换为二进制格式后,会被保存在APS文件中。这种格式的主要目的是为了...

    VC精华文摘-文件篇

    《VC精华文摘-文件篇》是对Visual C++(简称VC)编程中关于文件操作的深入探讨和精华总结。在Windows环境下,VC是开发者常用的一种C++集成开发环境,其强大的功能和丰富的库支持使得文件操作变得高效且方便。本文摘...

    二级目录文件系统模拟

    在这个大型实验“二级目录文件系统模拟”中,我们将关注如何使用VC6(Visual C++ 6.0)来实现一个基本的二级目录结构,这对于我们理解文件系统的运作机制至关重要。VC6是一个经典的C++集成开发环境,它提供了编译器...

    VC中如何将数写入txt文件中

    假设我们有一个指向需要存储的一段`BYTE`类型数据的首地址的指针`pTemp`,则可以使用以下循环结构将这些数据写入文件: ```cpp for (int y = 0; y ; y++) { for (int x = 0; x ; x++) { ofs (int)*pTemp ; ...

    VC Txt文件转换为Dat文件.rar

    DAT文件则可以是任何类型的二进制文件,不具有特定的结构,通常由程序自定义格式,用于存储数据或程序的中间结果。 在VC环境下,文件操作通常涉及到C++标准库中的fstream库,包括ifstream(输入文件流)和ofstream...

    VC读取3DS文件实例

    通过学习这个实例,初学者不仅可以理解3DS文件的结构,还能掌握如何在VC环境中处理3D模型,这对于游戏开发的实践应用是非常有价值的。此外,这个实例还提供了代码调试和问题解决的经验,有助于提升编程技能。

    VC面向对象开发分析与设计实例解析

    从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出关于VC++面向对象开发在电梯载客问题上的应用实例。以下是对该知识点的详细解析: ### 面向对象设计与分析:电梯载客问题 #### 一、问题背景与需求...

    VC 文件扩展名解读大全

    - **定义**:这些文件是由 VC 的性能分析工具 PROFILE 生成的。 - **用途**:用于存储性能分析结果,帮助开发者优化程序。 #### .PCH:预编译头文件 - **定义**:PCH 文件是预编译头文件,由编译器在构建项目时自动...

    VC读文本文件

    文件操作可能抛出异常,因此在进行文件操作时,最好使用`try-catch`结构来处理可能出现的异常: ```cpp try { // 打开、读取和关闭文件的代码 } catch (const std::exception& e) { std::cerr ...

    vc实例

    1. **C++基础**:VC实例中会涉及到C++的基础语法,如变量声明、数据类型、控制结构(if、switch、for、while)、函数、类与对象、模板等。 2. **MFC框架**:MFC是微软提供的一个用于构建Windows GUI程序的类库,它...

    面向对象程序设计与vc实践

    面向对象程序设计(Object-Oriented Programming,OOP)是一种基于对象概念的编程范式,它将数据结构和操作这些数据的方法封装在一起,形成独立的对象。C++ 是一种支持面向对象编程的现代编程语言,由Bjarne ...

    VC文件切割合并器

    8. **代码设计**:VC文件切割合并器作为一个学习示例,其代码设计和结构也值得研究。如何组织代码以实现模块化,如何封装功能以提高可复用性,以及如何使用面向对象的设计原则,都是提升编程技能的重要方面。 总之...

    复合文档结构分析VC源代码

    符合微软复合文档二进制结构规范的对象叫 Storage 对象。复合文档不仅包含文本,还可以包括图形、电子表格数据、声音、视频图像以及其它信息。我们可以用VC自带的DocFile View工具查看复合文档的结构。 但在编写...

    vc+sql实例工程文件

    【标题】"vc+sql实例工程文件"是一个典型的企业级应用开发示例,它结合了Microsoft的Visual C++(简称VC)编程环境和SQL Server 2000数据库管理系统,用于构建一个完整的人事管理系统。这个系统展示了如何利用C++...

Global site tag (gtag.js) - Google Analytics