일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 포스트크로싱
- 명동
- 영어공부
- 성산 혼밥
- 혼공파
- 제주도
- 제주도 카페
- 혼공머신
- 제주도 혼술
- 파이썬
- 제주도 여행
- postcrossing
- 성산 혼술
- 천안 맛집
- postcard
- 성산
- 엽서북
- PYTHON
- 말해보카
- 성산 맛집
- 엽서
- 제주도 맛집
- 맛집
- 제주도 성산
- 플레이스캠프
- 제주도 숙소
- 혼공단
- 혼공챌린지
- 제주도 혼밥
- 영어
- Today
- Total
목록Programming/API,MFC (6)
Cherry Cloud 9
오래 걸리는 for문 혹은 while문을 사용할 때, UI가 멈추는 현상이 발생한다. 그래서 thread를 사용해서 UI가 멈추지 않도록 하게 하는데, Thread를 사용하지 않고 반복문 사용 중에 Stop 버튼을 클릭하여 반복문에서 빠져나오는 방법이다. OnBtnStart() { m_bStop = FALSE; // 클래스 멤버 변수로 선언할 것 while (1) { MSG msg; while(PeekMessage(&msg, GetSafeHwnd(), 0, 0, PM_REMOVE)) { DispatchMessage(&msg); } if(m_bStop == TRUE) { return; } // 이곳에 무한 루프를 돌면서 실행할 코드를 작성한다. } } // STOP 버튼을 눌렀을 때 OnBtnStop() ..
개발 중에 짜증나는 점을 하나 꼽는다면 프로그램 디버깅 후 발생하는 memory leak이다. 제때 메모리를 해제해 주려고 노력하지만 가끔가다 한번씩 해제를 까먹을 때도 있고 등등 다양한 이유로 한번씩 발생하곤 하는데 이번 memory leak은 코드를 한줄 한줄 체크할 만큼 그 원인을 찾기가 매우 어려웠다. 원인은 Thread 내부에서 사용된 CString 이었다. Thread 사용 중 TerminateThread 와 같이 강제 종료 될때, CString 에서 사용하는 메모리 영역이 제대로 해제 되지 않아 발생할 수 있다. (그런데 평소 다른 thread 에서는 잘 만 되다가 해당 부분에서 memory leak 이 생겼는지는 더 확인을 해봐야 할 것 같다) 결론은 thread가 종료 되기 전 CStri..
CString strMsg = ("Hello World!"); strMsg.Delete(strMsg.GetLength()-1); //Hello World
BOOL CMFCApp::InitInstance() { CreateMutex(NULL, TRUE, _T("mfcapp")); if(GetLastError() == ERROR_ALREADY_EXISTS) { return FALSE; } . . . . }
MFC에서 라디오 버튼을 사용하다보면 가끔씩 이런 오류가 발생한다. Warning: skipping non-radio button in group 1. 라디오 버튼의 TAB 순서를 순서대로 지정한다.