2010/03/01 11:18
효성 노틸러스에서 일한지 대략 2개월이 다 되어간다. 오늘은 3.1절, 빨간날이지만, 끝내 해결하지 못한 에러도 있고, (보수도 1.5배이고 ㅋ) 해서, 회사에 출근!
금요일, 나를 하루 종일 신음하게 만들었던, 에러와 싸우기 위하여, 카페인을 일단 섭취하였다.
그 에러의 증상은,
Dialog base project에서 버튼을 클릭해서 다른 Dialog박스를 띄우고 이 박스를 종료하면 프로그램이 종료되는 것.
디버깅끝에 호출된 박스가 종료될 때 호출자 Dialog 박스의 윈도우 핸들을 초기화 해버린다는 것을 발견하였다.
금요일에는 피곤했던걸까;;; 윈도우 핸들을 쓰레기 값으로 만드는것이 아니라, 초기화 한다는거에 주목했어야했는데;;
오늘 디버깅 시작하면서, 10분만에 끝내버렸다; 원인을 Dialog박스가 화면에 Display될 때 호출되는 메시지인 WM_INITDIALOG 에서 한 멤버변수를 초기화하는데, 이 범위가 너무 컷던것;;;
이런 초딩같은 실수를ㅜ
이럴 땐 가끔 Java에서 코딩하면 절대 이런 일 없겠지.. 하는 생각이 든다. 또한, 디버깅으로 인한 개발비용감소도ㅋ
난 알바생이고, 현재 프로젝트 deadline이 좀 남아서 괜찮지만, 안그럴 경우에는 선택한 언어와 플랫폼이 정말 큰 영향을 끼칠듯.
여하튼, C/C++와 같은, 메모리에 직접 접근하는 언어에서 작업할 때는 배열에서 random access할 때 뿐 아니라 초기화 할 때 그 범위도 조심해야 한다는 것~ 기억해야겠다.