可执行文件的向下兼容性
DOS下执行一个PE文件?
PE文件中的DOS部分由MZ格式的文件头和可执行代码部分组成,可执行代码被称为“DOS块”(DOS stub长度不定)
MZ格式的文件头由IMAGE_DOS_HEADER结构定义
DOS文件头的基本作用:
1、若在DOS下执行一个PE文件,系统可以将文件解释为DOS下的.exe可执行格式,并执行DOS部分的代码。
一般来说,DOS部分的执行代码只是简单地显示一个“This program cannot be run in DOS mode. 然后退出。
在link时使用/stub:dos_file_name.exe选项,完全可以用一个全功能的DOS程序来作为PE文件的DOS部分。
2、e_lfanew字段,指出了真正的PE文件头在文件中的位置