Search code examples
windowswinapibinarydosversioninfo

Can DOS MZ binaries have VERSIONINFO metadata at all?


I was under impression what VERSIONINFO resource is a purely Windows invention, however while reading documentation, I stumbled upon VOS_DOS possible value of fileos parameter of VERSIONINFO resource definition statement. Likewise, a binary equivalent, VS_FIXEDFILEINFO struct have dwFileOS member, which can have VOS_DOS value, designating what "The file was designed for MS-DOS." (??).

How can it be? I thought what MZ binary format simply does not have a room for such metadata... Am I missing something, like VERSIONINFO support in the greater MS-DOS versions and some kind of libraries to read it?


Solution

  • There is no standard for resource data for plain MZ files. However, NE and PE files can execute under DOS with a help of a DOS extender. I believe Microsoft themselves used Phar Lap in some versions of Visual C so that they could run the same executable in Windows and DOS.

    It seems the NE format has also been used in early versions of MS DOS 4.0.