윈도우 프로그래밍을 할 때, 디버그 모드에서는 잘 돌아가던 프로그램이 릴리즈 모드에서 이상한 증상을 보이면 참 난감하다. 물론 Visual Studio 2005는 릴리즈 모드에서도 디버깅이 가능한 것처럼 보이지만 실제로 해보면 코드추적(tracing)도 잘 안 되고, 변수값도 이상하게 찍히기 때문에 별로 도움이 안 된다.

인자로 넘긴 문자열을 Visual Studio 출력창에 찍어주는 OutputDebugString 함수를 쓰면 예전에 printf()로 하던 것처럼 디버깅할 수 있다. 특히 DebugView라는 프로그램을 실행하면 이 함수의 출력값을 -Visual Studio 출력창이 아닌- 윈도우 화면으로 확인할 수 있기 때문에 다른 사람의 컴퓨터에서 문제가 생겼을 때 아주 유용하다.

아래와 같이 함수를 하나 만들어 두면,
이렇게 사용할 수 있다. 단, 개발 완료 후 최종 사용자에게 배포할 때에는 이 OutputDebugString()이 호출되지 않도록 주의해야 한다. 너무나 당연한 것이, 입장을 바꾸어 내가 디버깅을 하려는데 DebugView 창에 듣도 보도 못한 프로그램이 이상한 메시지를 쏟아놓고 있으면 얼마나 짜증이 나겠는가 말이다. 국내의 한 상용 프로그램은 그 처리를 제대로 안 한 덕분에, 내가 아는 어떤 분으로부터 걸핏하면 "디버그 계의 슈뤠귀"라는 소리를 듣는다. 그것이 바로 위의 함수에서 _MY_DEBUG라는 값을 따로 정의해서 사용하는 이유다.
Posted by 4four
나는 영화 "해리포터와 아즈카반의 죄수"를 통해서 처음으로 해리포터 시리즈를 접했다. 여러 가지 신선한 볼거리도 좋았지만 무엇보다도 처음과 끝이 탁탁 맞아들어가는 치밀한 설정과 이야기 전개에 완전 감탄해서 그 후로는 시리즈가 새로 개봉할 때마다 꼭꼭 영화관을 찾곤 했다.

하지만, 그러면서도 정작 '아즈카반의 죄수' 앞부분의 이야기를 찾아볼 생각은 하지 못하고 있었는데 얼마 전 우연한 기회(?)로 '마법사의 돌' DVD를 구입했다.

영화관에서는 한 번 장면이 지나가면 다시 볼 수 없지만 DVD는 구간 반복이 가능한 덕분에 처음으로 '헤르미온느'라는 이름의 진짜 발음을 알게 됐다. 몇 번 반복해서 듣다 보니 '헤르미온느'는 무슨.. '허마이어니', 조금 빠르게 하면 '허마니'로 들리는 게 아닌가. 허마니.. 허마니..

해리포터와 마법사의 돌

DVD

아무튼.. DVD 영화를 보면서 느낀 바를 적어보자면, 1편이라서 그런지 설정이나 이야기 전개에서 어색함이 많이 묻어난다. 예를 들어볼까? 엄청나게 강한 듯한 인상을 풍겼으나 너무나 어이없이 처치되고 마는 트롤. 이런저런 이야기를 만들려고 억지로 집어넣은 설정 아닌가? 또, 마지막에 퀴렐 교수를 태워버린 해리의 손에 담긴 비밀은 무엇인가? 단지 어머니의 사랑 덕분이라고 설명하는 건 좀 그렇지 않은가 말이다.

지하로 가는 길에서 체스 대결할 때 왜 우리의 론과 해리, 헤르미온느는 각자의 말 위에 올라타야 했을까? 친구들의 희생이라는 요소를 넣으려고? 쿼디치 경기의 규칙은 또 어떤가? 아무리 다른 선수들이 열심히 해도, 수색꾼(스카우트)이 골든 스니치만 잡으면 무조건 이긴다니 너무 잔인하다...

영화만 보고 소설은 안 읽었는데 혹시 원작을 읽으면 이런 궁금증이 해소되려나..

그래도 해리포터 특유의 아기자기한 볼거리와 '크게 무리까지는 되지 않는' 이야기 전개는 꽤 만족스러웠다. 특히 이미 다 자라버린 주인공들의 모습에 익숙했던 내게, 귀여운 꼬꼬마 론과 해리와의 만남은 색다른 즐거움이었다. 더군다나 끝날 즈음에 나오는, "네버 베터" 라고 말하는 '허마니'의 귀여운 표정 하나만으로도 앞서 얘기한 어설픔 따위는 모두 감싸 안아줄 수 있다. (~_~)

아! 그리고 마지막으로 하나만 더. 이건 좀 진지한 얘기인데, 영화를 보던 중에 몇 번 잘못된 띄어쓰기가 눈에 띄었다. DVD를 구입하는 사람들은 아무래도 소장가치를 중시하는 사람일 텐데, 언뜻 사소해 보이는 이런 문제는 구매에 대한 만족감을 떨어뜨릴 수 있다. 너무 소소한 것을 트집 잡는 것처럼 보일지 몰라도, 예를 들어 "준비가 될 때 까지" 같은 오류는 좀 없애줬으면 좋겠다. '때'와 '까지'는 붙여써야 한단 말이다.
Posted by 4four
웹서핑을 하던 중에 재미있는 소프트웨어를 발견했다. ViEmu 라고 Visual Studio의 소스 편집기를 vi처럼 만들어주는 프로그램이다. 30일 시험판을 받아서 써보고 있는데, 신기하게도(!) 잘 동작한다.

그런데 한 가지 문제점이 있었으니, 입력 모드에서 한글을 쓰다가 ESC 키를 누르면, 언어가 여전히 한글로 남아있기 때문에 명령 모드의 키가 제대로 동작하지 않는다는 거다. 예를 들어, "한글"이라고 입력하던 중에 ESC를 누르고 다시 h를 누르면 커서가 왼쪽으로 움직이는 대신 'ㅗ'라는 글자가 찍힌다. 그렇다고 한글 입력이 끝날 때마다 영어로 바꾸는 습관을 들일 수는 없는 노릇 아닌가.

그런 까닭으로 ESC를 누를 때마다 IME의 입력 언어를 영어로 바꿔주는 프로그램을 만들어보았다. 이름을 EscapeEnglish 라고 지었는데, 쓰고 보니 뜻은 "영어탈출", 프로그램의 기능과 정반대가 되고 말았다.

진짜 다른 건 다 빼고 순수하게 기능만 구현한 것이라 사용성은 많이 떨어진다. 아래 파일을 내려받아서 압축을 푼 뒤 exe 파일을 실행하면 된다. 프로그램을 종료하려면 작업관리자에서 프로세스를 죽여야 한다.

EscapeEnglish_0_1a.zip

자랑스러운 0.1 알파 버전


현재 버전에는 한 가지 문제가 있다. 한글 조합 중에 명령 모드로 가려면 ESC를 두 번 눌러야 한다. 한 번 누르면 조합 중이던 글자를 확정하고 언어를 영어로 바꾼 뒤 입력 모드로 계속 남아 있고 여기서 한 번 더 눌러줘야 명령 모드로 들어간다. ESC를 가볍게 두 번씩 눌러주는 습관을 들일까 고민 중이다.

그건 그렇고.. ViEmu 이 프로그램 너무 비싸다. 겨우 79달러(홈페이지에 보면 Only $79라고 쓰여 있다)라니... ㅠ,ㅠ 물론 만드는 게 쉬워보이지는 않지만 그렇다고 해도 참 부담스러운 가격임에는 틀림없다.
Posted by 4four