Visual C++ FAQ - Я пытаюсь вызвать Windows API, но компилятор выдаёт undeclared identifier error (C2065). Почему?

ОГЛАВЛЕНИЕ


Я пытаюсь вызвать Windows API, но компилятор выдаёт undeclared identifier error (C2065). Почему?

Заголовочные файлы Windows могут использоваться создания приложения для различных версий Windows начиная с Windows 95 и NT 3.51. Так получилось, что не все функции API присутствуют во всех версиях Windows. Так вот, чтобы компилятор не ругался а, соответственно и не ипытался использовать несуществующие в данной версии Windows функции API, необходимо использовать следующую систему деректив препроцессора. Директивы позволяют выборочно включать прототипы API:
  • WINVER: версия Windows (в добавление к 9x/Me и NT)
  • _WIN32_WINDOWS: для Windows 9x/Me
  • _WIN32_WINNT: для Windows NT
  • _WIN32_IE: Общие элементы управления
По умолчанию Вы можете использовать только функции присутствующие в Windows 95, NT 3.51, и pre-IE3 common controls. Чтобы использовать API в более поздних версиях Windows, необходимо #define вышеописанные директивы перед включением различных Windows заголовков. Здесь полный список значений для данных макросов.