Я использую Qt Creator 2.0.1 на основе Qt 4.7.0 (32 бит). ОС Windows 7 Ultimate (32-разрядная версия).
Я бы хотел перезапустить Windows, используя следующий вызов функции:
ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MAJOR_SYSTEM |
SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY);
Я добавил windows.h и reason.h в исходный код и добавил libuser32 в раздел LIBS файла * .pro.
После компиляции кода Qt Creator выдает ошибку о том, что SHTDN_REASON_MAJOR_SYSTEM
и SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY
не определены в области.
Я изучил файл reason.h, поставляемый с mingw. Я обнаружил, что #define
находятся внутри #if
:
#if (_WIN32_WINNT >= 0x0501)
Я посмотрел на значение _WIN32_WINNT
, которое выглядит как 1024 (0x400).
Я понимаю, что это какой-то номер версии, и эти #define
должны быть скомпилированы после определенной версии. Но почему _WIN32_WINNT
так низко в Windows 7? Как я могу использовать эти #define
с? Я не хочу ставить прямые значения вместо SHTDN_REASON_MAJOR_SYSTEM
и SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY
.