windows.h

#include <windows.h> как часто мы видим это включение в коде cpp, когда собираем программу под Виндоус.

И также часто мы не можем понять почему вылетают такие примерно ошибки компиляции:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(8263) : error C2059: syntax error : 'string'
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\winnt.h(8263) : error C2238: unexpected token(s) preceding ';'

Если щелкнуть мышкой по ошибке , то откроется окошко, из которого понятно только одно, что какой-то winnt.h не знает тип DWORD;  и т.д.

фотка 1

Есть большая подсказка в логе сборке Qt в том, что есть всегда последний компилируемый файл, после которого вылетают эти странные ошибки.

фотка 2

Теперь в чем смысл: windows.h это файл с определениями DWORD и т.д. и по логике он должен включаться в проект до winnt.h. Так вот у нас судя по логу проблема в файле prog_paymentdlg.cpp, но причем там windows.h вообще не понятно.

Но тем не менее добавляем в  prog_paymentdlg.h включение заголовков #include <windows.h> и ошибки уходят. И это странно, но работает...

Что еще интересного во всем этом? Получается типы DWORD и т.д. это не С типы, а Виндоусовские эксперименты.