gpt4 book ai didi

C++/Win32 如何每秒加载一个函数

转载 作者:可可西里 更新时间:2023-11-01 10:25:48 25 4
gpt4 key购买 nike

我正在编写一个程序,我想在其中每秒调用一个函数。我使用 GetSystemTime() 来获取时间,并且我已经声明了一个 if 来检查前一秒是否等于当前秒,如果不是,则加载该函数。这是代码:

int prevsec = cursec;
SYSTEMTIME systime;
GetSystemTime(&systime);
cursec = systime.wSecond;
curmsec = systime.wMilliseconds;
if ( curmsec - prevmsec > 100 )
{
prevmsec = curmsec;
startgame();
}
if ( prevsec != cursec )
{
prevmsec = 0;
startfunction();
}

我唯一的问题是,我不知道把它放在哪里;如果我把它放在我的 Windows Procedure 的开头,就像我现在所做的那样,它会在每次发送新消息时检查它是否应该加载该函数,因此当窗口打开并且你没有做任何事情时,它会'检查时间是否已更改,因此无法正常工作。我想知道是否有一个地方可以放置代码,这样它就可以继续检查时间(就像在无限 while 循环中一样)而不会看到“未响应”消息。我希望你能理解这个问题,谢谢你:)

最佳答案

使用 SetTimer每秒获取一次 WM_TIMER 消息的函数。

注意:Windows 在这类事情上并不是非常可靠。您可能会在消息之间间隔几秒钟,或者在短时间内收到几条消息。

关于C++/Win32 如何每秒加载一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com