DOS MZ二进制文件可以包含VERSIONINFO元数据吗?

问题描述:

我在印象之下什么VERSIONINFO资源是一个纯粹的Windows发明,然而在阅读documentation时,我偶然发现VOS_DOSfileos参数的VERSIONINFO资源定义语句的可能值。同样地,一个二进制等效值,VS_FIXEDFILEINFO结构具有dwFileOS构件,其可具有VOS_DOS值,指定什么“该文件是设计用于MS-DOS。”(??)。DOS MZ二进制文件可以包含VERSIONINFO元数据吗?

这怎么可能?我想什么MZ二进制格式根本没有一个房间......我缺少的东西这样的元数据,就像在大MS-DOS版本VERSIONINFO支持和某种图书馆阅读呢?

+0

嗯...一个文件既可以是一个有效的DOS二进制和有效的Windows二进制文件。通常这被用来给Windows可执行文件一个DOS存根,它只是打印“在Windows中运行我”或类似的东西,但我想它可以用来给DOS可执行文件一个Windows存根,它只是打印“在DOS中运行我”。这样的文件可能包含'VERSIONINFO'资源,我认为'VOS_DOS'将是'fileos'的合理选择。 –

+0

资源不一定与可执行文件相关联。它只是一种二进制格式,可以存储在任何地方。例如.res文件。 –

有针对普通的MZ文件资源数据还没有标准。但是,NE和PE文件可以在DOS下借助DOS extender执行。我相信微软自己的Visual C的某些版本使用Phar Lap,使他们能够在Windows中运行和DOS相同的可执行文件。

看来NE格式也被用来in early versions of MS DOS 4.0