1

我想在 Windows 下拥有最简单的 C 程序版本,它可以防止操作系统在运行时进入睡眠模式或休眠模式。目前我有这个:

#include <windows.h>

int main(int argc, char **argv)
{
    while (1)
    {
        SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED);
        Sleep(300*1000); /* wait 300 seconds */
    }
    return 0;
}

但是,这不起作用 - 如果我尝试使用 Orwell Dev-C++ 5.2.0.3 编译它,我会收到此错误:

[链接器错误] C:\Users\bachmann\AppData\Local\Temp\ccD8l1tp.o:disable_sleep.c:(.text+0x1e): undefined reference to `SetThreadExecutionState' collect2: ld returned 1 exit status

那么有什么问题呢?根据MSDN,我认为这应该可行。

4

1 回答 1

2

那是一个链接器错误:您需要链接到kernel32.lib. 从问题中链接的页面:

要求

支持的最低客户端|Windows XP
支持的最低服务器|Windows Server 2003
标头|Winbase.h(包括 Windows.h)
库|Kernel32.lib <------
DLL|Kernel32.dll
于 2012-07-17T10:39:53.927 回答