win API 에서 타임 인터럽트 걸려면 어떻게 해야하나요?

kknd345의 이미지

win API 에서 타임 인터럽트 걸려면 어떻게 해야하나요?

10초 만에 소스가 몇번 돌았는지 static 변수나 전역 변수로 체크 해보고 싶거든요.

간단한 예나 어떤 함수 써야 되는지 가르쳐 주세요.

부탁드립니다.

purewell의 이미지

_____________________________
언제나 맑고픈 샘이가...
http://purewell.biz

체스맨의 이미지

SetTimer 로 가능하지만 이것은 실시간 Timer 가 아닙니다.

이 타이머는 윈도 이벤트 루프상에서 작동하기 때문에 이벤트
상황에 영향을 받게 되지요. ( 예를 들어 창 위에서 마우스 이동을
빈번하게 발생시키는 등. )

멀티미디어 타이머로 timeSetEvent API 가 지원됩니다.
이 타이머는 타이머 자신의 스레드를 가지고 동작합니다.
MSDN 참고하세요.

Orion Project : http://orionids.org

체스맨의 이미지

kknd345 wrote:
win API 에서 타임 인터럽트 걸려면 어떻게 해야하나요?

10초 만에 소스가 몇번 돌았는지 static 변수나 전역 변수로 체크 해보고 싶거든요.

간단한 예나 어떤 함수 써야 되는지 가르쳐 주세요.

부탁드립니다.


10초만에 몇번 돌았는지 알아보는 경우는 굳이 타이머를 쓰기보다는,
10초를 재는 스레드를 생성하는 게 좋을 것 같습니다.
스레드에서 10초간 Sleep 한 뒤, 카운터를 확인하면 될 겁니다.

Orion Project : http://orionids.org

kknd345의 이미지

////////////////////////////////////////////////////////
	HANDLE h_recv_thread;
	h_recv_thread= pthread_create(NULL,0,Msg,NULL,0,NULL);
///////////////////////////////////////////////////////



void Msg()
{
	int Tcount=0;
	while(count != 30)
	{
		Sleep(10000);
	
		sprintf(myMessage, "",robot1_dx,robot1_dy);
        
		MessageBox(NULL, myMessage ,"Message Box", MB_OK );

		Tcount++;
		count=0;
	}



}

이렇게 쓰레드를 생성할려고 했습니다. 그런데..

Quote:
error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (void)' to 'unsigned long (__stdcall *)(void *)'

이런에러가 뜨네요.

예제보고 응용할려고 했는데 생각처럼 안 쉽네요.

무엇이 잘못 된건가요?
( 예제는 클래스 기반 이던데.... 제건 함수 기반이라 그게 문제인가요? 간단하게 예 좀 들어주세요 ㅜㅜ)

부탁드립니다.

1%의 가능성이면 충분하다!
최선을 다하자!

익명 사용자의 이미지

CreateWaitableTimer, SetWaitableTimer, CancelWaitableTimer, WaitForMultipleObjects, WaitForSingleObject 이런 API 를 보시면 어느정도 답이 될지 모르겠네요

그리고, 쓰레드 만드는 logic 부분의 3번재 인자가 void(void) 가 들어가서 틀렸다는것 같군요.

binul의 이미지

void Msg(void* pArgument)
{
...
}

와 같이 함수를 만드시면 됩니다.
쓰레드 프로시저의 아규먼트로 void* 형이 쓰입니다.

MSDN에서 _beginthread로 검색하여 보시면
쓸만한 예제가 나와있습니다.

--------------------------------
그래날아보자꾸나

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.