Microsoft Windows includes a special API function GetVersionEx() using which we can determine the version of the Windows that we are currently running. It works as expected and we have all the documentation needed for this function from Microsoft servers.
Unfortunately, some of us have write code that can support older versions of Microsoft Windows such as Windows 95 or Windows XP. This API has changed since then and the same program might not work in the same manner.
For all the programmers, who want to support these older systems or their emulations, we can use an open-source C++ library called DtWinVer in our projects. But the package comes with pre-compiled binaries too which can be used by anyone who want to detect and see which version of the operating system they are running.
It comes with both a GUI binary and a CLI program. When the GUI version is launched, it simply displays a message box containing all the information that it has gathered about the operating system. The information displayed contains the versions for the emulated OS and the underlying OS, build, device type, product type, architecture and more. The CLI version also displays the same information but in the command prompt.
DtWinVer has some advantages over the API function provided by Microsoft. It can be used to detect whether you are running it under an emulator such as DOSBox or even Windows. When it is used under DOSBox, you will see the emulated OS to be MS-DOS and the underlying OS to be Microsoft Windows.
DtWinVer is a C++ class that works flawlessly with Microsoft Visual Studio but might need a few changes when used with GCC. It is being developed for more than 20 years and supports all the known versions of Windows and MS-DOS.
You can download DtWinVer from http://www.naughter.com/dtwinver.html.