Я использую Visual C ++ и Windows API.
На MSDN каждая страница описания функции имеет требования раздел, который показывает минимально поддерживаемый клиент (как в примере ниже; функция CreateFile).
Нужно ли вручную проверять каждую функцию Win32 в моей программе, чтобы определить минимально поддерживаемого клиента, или есть автоматический способ?
В идеале вы должны протестировать свою программу на версиях Windows, которые поддерживает ваша программа. Если вы ссылаетесь непосредственно на функцию, которая не существует, Windows отобразит сообщение об ошибке, и программа вообще не запустится.
Как уже упоминалось в комментариях, вы не можете полностью доверять информации о версии на MSDN. CreateFile
существует с Windows 95 / Win32S / NT3.x, но только CreateFileA
на самом деле работал на не-NT системах, CreateFileW
просто терпит неудачу с «не реализованным» кодом ошибки. Если ваша минимальная цель — Windows XP или выше, вам не нужно беспокоиться о разделении 9x / NT, но вы все равно должны проверить свое программное обеспечение, чтобы убедиться в этом.
Вы также должны быть осторожны, если вы измените WINVER
потому что он может изменить размер некоторых структур, а затем будет отклонен некоторыми функциями в старых версиях Windows.
Других решений пока нет …