Как правило, вы не хотите проводить тестирование с определенным номером версии, а скорее проверяете конкретную функцию. Если вы действительно хотите обнаружить «Windows 7 или новее», однако ...
#include <windows.h>
bool IsWin7OrLater() {
DWORD version = GetVersion();
DWORD major = (DWORD) (LOBYTE(LOWORD(version)));
DWORD minor = (DWORD) (HIBYTE(LOWORD(version)));
return (major > 6) || ((major == 6) && (minor >= 1));
}
В 2000 году сравните основные и второстепенные значения с 5 и 0 соответственно. Для XP сравните с 5 и 1. Для Vista - 6 и 0.