我希望在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):对“SetThreadExecutionState”的未定义引用 collect2:ld返回1退出状态
那有什么不对?根据{{3}},我认为这应该有效。
答案 0 :(得分:2)
这是一个链接器错误:您需要与kernel32.lib
链接。从问题中链接的页面:
Requirements Minimum supported client|Windows XP Minimum supported server|Windows Server 2003 Header|Winbase.h (include Windows.h) Library|Kernel32.lib <--------- DLL|Kernel32.dll