Использование заголовочных файлов Windows


Заголовочные файлы Windows API дают Вам возможность создавать 32-и 64-разрядные приложения, которые выполняются в Microsoft ® Windows ®. Они используют типы данных, которые дают возможность создавать и 32- и 64-разрядные версии вашего приложения из единственного исходного кода. Дополнительную информацию, см. в статье  Подготовка  64-разрядного Windows.

Microsoft® Visual C++® включает в себя копии заголовочных файлов Windows, которые были актуальными на момент выпуска Visual C++®. Поэтому, если Вы устанавливаете обновленные заголовочные файлы из SDK, то можете оказаться с несколькими версиями одних и тех же заголовочных файлов на вашем компьютере. Чтобы гарантировать, что Вы используете, последнюю версию заголовочных файлов SDK, следуйте указаниям, включенными в статью Инсталляция Платформы SDK с Visual Studio. Или же, Вы получите нижеследующую ошибку при компилировании кода, который использует функции, которые были введены после того, как Visual C++® был : ошибка C2065: необъявленный идентификатор.

Некоторые функции, которые зависят от конкретной версии Windows, объявляются, используя условный код. Это дает Вам возможность использовать компилятор, который обнаружит, использует ли ваша программа функции, которые не поддерживаются его целевой версией(ями) Windows. Чтобы компилировать приложение, которое использует эти функции, Вы должны определить соответствующее макроопределение. В противном случае, Вы получите сообщение об ошибке C2065. Ниже следует таблица, указывающая макроопределение, которое Вы должны определить для каждой намечаемой системы.

Таблица ниже указывает стандартный макрос, которым Вы должны определить каждый планируемый основной выпуск операционной системы. (Отдельные заголовочные файлы могут использовать другое макроопределение; поэтому, если происходят проблемы компиляции, проверьте заголовочный файл, который содержит описание условных определений).

Обязательная минимальная система Макрос определения
семейство Windows Server 2003 _WIN32_WINNT>=0x0502
  WINVER>=0x0502
Windows XP _WIN32_WINNT>=0x0501
  WINVER>=0x0501
Windows 2000 _WIN32_WINNT>=0x0500
  WINVER>=0x0500
Windows NT 4.0 _WIN32_WINNT>=0x0400
  WINVER>=0x0400
Windows Me _WIN32_WINDOWS=0x0500
  WINVER>=0x0500
Windows 98 _WIN32_WINDOWS>=0x0410
  WINVER>=0x0410
Windows 95 _WIN32_WINDOWS>=0x0400
  WINVER>=0x0400
Internet Explorer 6.0 _WIN32_IE>=0x0600
Internet Explorer  5.6 _WIN32_IE>=0x0560
Internet Explorer 5.01, 5.5 _WIN32_IE>=0x0501
Internet Explorer 5.0, 5.0a, 5.0b _WIN32_IE>=0x0500
Internet Explorer 4.01 _WIN32_IE>=0x0401
Internet Explorer 4.0 _WIN32_IE>=0x0400
Internet Explorer 3.0, 3.01, 3.02 _WIN32_IE>=0x0300
Обратите внимание! на то, что это некоторые функции, представленные в последней версии Windows могут быть добавлены к сервисному пакету для предыдущей версии Windows. Поэтому, чтобы наметить сервисный пакет, Вам, возможно, нужно определить _WIN32_WINNT со значением для следующего старшего выпуска операционной системы. 

Например, функция GetDllDirectory была введена в Windows Server 2003 и условно определяется, если установлен макрос _WIN32_WINNT - 0x0502 или больший. Эта функция была также добавлена и в Windows XP SP1. Поэтому, если Вы определили  _WIN32_WINNT 0x0501, чтобы запланировать Windows XP, то пропустите функции, которые определяются в Windows XP SP1.

Например, чтобы использовать функции специально предназначенные в заголовочных файлах для Windows 2000, Вы должны явно определить _WIN32_WINNT как 0x0500 или больше. Вы можете определить идентификаторы, используя оператор #define в каждом исходном файле, или определяя параметр /d_win32_winnt=0x0500, поддерживаемый Visual C++.

Visual C++ 6.0: Чтобы определить параметры компилятора, перейдите в пункт меню Projects (Проекты) и щелкните по пункту Settings (Установки), затем выберите вкладку C/C++.

Visual C++ 7.0: Чтобы определить параметры компилятора, перейдите в пункт меню Projects (Проекты) и щелкните по пункту  Properties (Свойства).

Назад в оглавление 
На главную страницу темы

Hosted by uCoz