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拓展头部结构