Почему C считает, что у меня Windows Server 2003?
Пока я смотрел решение к моему вопросу, я случайно обнаружил вот эту вводящую в ступор строчку кода:
#define WINVER 0x0502
У меня Windows 10, но это код от Windows Server 2003 (документация)…
Компилятор MinGW-W64. Windows 10 поставлялся вместе с купленной машиной, т.е. лицензия.
Объявил сам макрос WINVER заголовок winresrc.h. Значение _WIN32_WINNT такое же, как и у WINVER.
Ответы (1 шт):
Ничего си не считает. Этот define показывает минимальную версию ОС, на которой скомпилированная программа сможет запуститься. А другие функции могут проверять и подключать различные реализации. К примеру, в visual studio c++ std::mutex по разному реализован для разных ос. Также WindowsSDK активно использует ее, что бы выбирать код, который точно будет работать на заданном множестве операционных систем.
Можете увеличить его до желаемого. Ничего страшного не случиться. Если не угадаете, программа может просто не запускаться (например, может начать ругаться при запуске, что такая то функция не найдена в такой то dll).