VISUAL C++ 编译器产生的目标文件仍然使用的是 COFF格式,而可执行文件是为 PE 格式
64 位系统下新的文件格式是 PE32+ 只是把原来 32 位的字段变成了 64 位
和 ELF 文件相同,PE/COFF 格式也是采用基于段的格式。代码段为 .code
,数据段是 .data
在 VC 中可以使用 #pragma
编译器指示:
#pragma data_seg("FOO")
相比 COFF,PE 文件头变成了 DOS MZ 可执行文件格式的文件头和桩代码(DOS MZ File Header and Stub),原来的 COFF 文件结构 中的 IMAGE_FILE_HEADER
部分拓展成 PE 文件头结构 IMAGE_NT_HEADERS
,相比原来增加了 PE拓展头部结构