Как к не #include <windows.h>

Используя MSVC2008, 32 бита в систему на 64 бита.

Мне когда-то рекомендовали никогда не включать windows.h как 'настоящий монстр и значительно замедлю мое время компиляции'.

Я пытался пропустить его, и, очевидно, получите ошибки компиляции. Я включал windef.h для определения всего DWORDs и т.д., но я быстро проваливаюсь, зная, что еще определить, чтобы заставить код компилировать.

Я теперь добираюсь:

2>c:\program files\microsoft sdks\windows\v7.0\include\winnt.h(6361) : error C2146: syntax error : missing ';' before identifier 'ContextRecord'
2>c:\program files\microsoft sdks\windows\v7.0\include\winnt.h(12983) : error C2065: 'PCONTEXT' : undeclared identifier

Кто-либо может предложить правильный подход здесь?

Спасибо

Simon

7
задан sipi 14 June 2010 в 11:22
поделиться

3 ответа

Внутренне windows.h учитывает многие определения, такие как NOMINMAX или WIN32_LEAN_AND_MEAN.

Это значительно сокращает время.

13
ответ дан 6 December 2019 в 04:52
поделиться

Используйте предварительно скомпилированные заголовки для сокращения времени компиляции и включайте windows.h.

24
ответ дан 6 December 2019 в 04:52
поделиться

Правильный ответ - «включить в PCH». Предварительно скомпилированные заголовки значительно сокращают время компиляции, и, вопреки распространенному мнению, это верно и для полных перестроек.

Если у вас есть более одного файла CPP в вашем проекте, команда «Перестроить все» создаст его один раз для всего проекта, что всего лишь потребует несколько секунд для компиляции - чтобы windows.h был включен во все файлы.

8
ответ дан 6 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: