2

毎秒関数を呼び出したいプログラムを書いています。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 プロシージャの先頭に配置すると、新しいメッセージが送信されるたびに関数をロードする必要があるかどうかがチェックされるため、ウィンドウが開いていて何もしていないときに勝ちました。時刻が変更されたかどうかを確認しないため、正しく機能しません。コードを配置できる場所があるかどうかを知りたいので、「応答していません」というメッセージが表示されずに、(無限の while ループのように) 時間をチェックし続けます。質問を理解していただければ幸いです、ありがとう:)

4

1 に答える 1