CodeNet / Языки программирования / C / C++ / Microsoft Visual C++ / FAQ - Часто задаваемые вопросы / 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 заголовков.