C++에서 리셋 할 수있는 간단한 비 차단 타이머를 만들려고합니다. 나는 몇몇 코드 예제를 찾기 위해 잠시 동안 구글을 찾았지 만, 내가 발견 한 모든 것은 이해하기가 너무 복잡하거나 여분의 비 예제 코드없이 컴파일되지 않는다.넌 블로킹 타이머 C++
키 누르기를 파일에 기록하는 프로그램이 있지만 두 번째 파일이 시작되기 전에 다른 키를 누르지 않으면이 키를 누른 후이 파일을 1 초 이상 기록해야합니다.
저는 Win32 타이머를 사용해야한다고 생각합니다. 그러나 창을 사용하고 있습니다. 그러나 사용법에 대한 간단한 예를 찾을 수는 없습니다. 이 방법은 정보 페이지에서 가져온 예를 들어
:
SetTimer(hwnd, // handle to main window
IDT_TIMER1, // timer identifier
1000, // 1-second interval
(TIMERPROC) MyTimerProc); // no timer callback
VOID CALLBACK MyTimerProc(
HWND hwnd, // handle to window for timer messages
UINT message, // WM_TIMER message
UINT idTimer, // timer identifier
DWORD dwTime) // current system time
{
// my proceedure code
FILE *OUTPUT_FILE;
OUTPUT_FILE = fopen("LOG.TXT", "w");
fprintf(OUTPUT_FILE, "%s", "");
fclose(OUTPUT_FILE);
// writes a blank text file.
KillTimer(hwnd, IDT_TIMER1); // stop timer after one call
}
컴파일하지 않는 IDT_TIMER1의 었소는 '정의되어 있기 때문에 나는 생각한다.
또한이 방법을 두 번 호출하여 다시 설정할지 또는 두 번 별도의 호출을 1 초 간격으로 시작할지 잘 모르겠습니다.
도움을 주시면 감사하겠습니다.
간단하면 'IDT_TIMER1'대신 1과 같은 숫자를 사용할 수 있습니다. 당신이 일반적으로하는 일은'const int IDT_TIMER1 = 1;'과 비슷합니다. 실제로 C++ 11은 Windows 전용 함수를 사용하지 않고 자신 만의 도구를 만들 수있는 도구를' '에 제공합니다. nonblocking 부분에서 C++ 11은 또한 ''을 제공합니다. –
chris
간단한 컴파일 가능한 예제를 찾지 못하는 이유는 사소한 Win32 API C 프로그램조차도 상용구가 엉망이되기 때문입니다. 하지만 http://msdn.microsoft.com/en-us/library/windows/desktop/ms644901(v=vs.85).aspx#creating_timer에서 코드를 사용해 보셨습니까? – abarnert
그래, 그 링크는 내가 뭘 하려는지 거의 알 수 없지만 하나의 예제만으로는 컴파일되지 않을 것이다. – Zac