.
처음에만 이상한 값이 나올것 같습니다. static으로 선언하지 않으면 쓰레기 값이 들어가 있어서 그렇겁니다. (전역 변수라 초기화 되어 있을것 같은데...)
case WM_CREATE: 아래부분에
memset(sTime, 0, sizeof(sTime)); 추가하면 잘 나올겁니다.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동 "만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
지역변수에요.. ㄷㄷ 저도 맨 처음엔 헷갈렸어요 ㅎㅎ
아.. 지역변수군요 후덜덜 전역변수인줄 알았네요 ㅎㅎ
WndProc 함수는 콜백 함수입니다. 다시 말해 시스템이 호출해 주는 함수에요. 지금 sTime 이 선언된 위치는 지역 변수의 위치입니다. 따라서 static을 붙여주지 않으면 함수가 종료됨과 동시에 변수에 저장된 값도 사라지게 됩니다.
WndProc 함수는 한 메세지마다 한 번씩 호출되요. WM_TIMER 라는 메세지가 있으면 WM_TIMER 부분만 실행한 후 종료되지요. 그리고 스택이 정리되기 때문에 sTime에 저장되어 있던 값은 사라져 버립니다.
그러니까 다음번에 WndProc 함수가 WM_PAINT 메세지를 처리하기 위해 호출될 때에는 sTime 변수에 무슨 값이 들어있는지 알 수가 없게 되고 이상한 값이 나오게 되죠.
아 해결됬습니다. hermes님 감사합니다. 대략 구성은 알고있었는데..ㅋㅋ
아직은 미흡한가보네요.이론따로 코딩따로 ...
감사합니다.
처음에만 이상한 값이 나올것
처음에만 이상한 값이 나올것 같습니다.
static으로 선언하지 않으면 쓰레기 값이 들어가 있어서 그렇겁니다.
(전역 변수라 초기화 되어 있을것 같은데...)
case WM_CREATE: 아래부분에
memset(sTime, 0, sizeof(sTime));
추가하면 잘 나올겁니다.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
전역변수처럼 보이지만
지역변수에요.. ㄷㄷ 저도 맨 처음엔 헷갈렸어요 ㅎㅎ
아.. 지역변수군요 후덜덜 전역변수인줄 알았네요 ㅎㅎ
아.. 지역변수군요 후덜덜
전역변수인줄 알았네요 ㅎㅎ
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
WndProc은..
WndProc 함수는 콜백 함수입니다. 다시 말해 시스템이 호출해 주는 함수에요.
지금 sTime 이 선언된 위치는 지역 변수의 위치입니다. 따라서 static을 붙여주지 않으면
함수가 종료됨과 동시에 변수에 저장된 값도 사라지게 됩니다.
WndProc 함수는 한 메세지마다 한 번씩 호출되요. WM_TIMER 라는 메세지가 있으면
WM_TIMER 부분만 실행한 후 종료되지요. 그리고 스택이 정리되기 때문에 sTime에 저장되어 있던 값은 사라져 버립니다.
그러니까 다음번에 WndProc 함수가 WM_PAINT 메세지를 처리하기 위해 호출될 때에는 sTime 변수에 무슨 값이
들어있는지 알 수가 없게 되고 이상한 값이 나오게 되죠.
/hermes 아 감사요
아 해결됬습니다. hermes님 감사합니다. 대략 구성은 알고있었는데..ㅋㅋ
아직은 미흡한가보네요.이론따로 코딩따로 ...
감사합니다.