为什么PE文件中存在MS-DOS存根?

Aan*_*Aan 5 windows dos stub portable-executable

在最新版本的PE文件中,存在一个存根,用于向MS DOS用户显示该句子This program can not be run in DOS mode.为什么这样的消息仍然存在althogh它浪费了大约38个字节?还有人还在使用MS-DOS吗?

Jer*_*fin 13

它仍然存在,因为没有简单的方法来删除它而不破坏文件格式,似乎没有人认为每个可执行文件38个字节是值得的.上节对齐的要求几乎都是"浪费"一个很多比这更无妨.


dri*_*iis 9

在某个地方,有人还在使用DOS.而且,对于向后兼容性问题,仍然需要38个字节.即使没有人使用DOS.

您会惊讶地发现Windows代码跳过多少箍以保持向后兼容.