GUI 프로그램이 갑자기 죽어버릴 때, 한가지 디버깅 방법
·
개발/연구
부산에서 대학을 졸업하고 처음 회사에 입사했을 때, 회사의 프로그램이 시연도중 갑자기 죽어버린 경우가 있었습니다. 시연 처음부터 잘 되던게 어느 시점부터 갑자기 프로그램 화면이 깨어지면서 죽어버리는 것이었죠. 실제 개발을 하던 사람들은 막상 벌어지는 상황에 이것 저것 머릿속으로 확인을 하고 있는지라 쉽게 원인을 알 수 없게 됩니다. 사실 제가 갔을 때는 이미 릴리즈 전 단계여서 제가 참여한 부분이 크지 않아 저는 마음편히 왜 그럴까 하고 생각을 했었습니다. 그러다가 결국 판단 내린 것이 프로그램이 깨어진 걸로 보아 GUI 모듈이다 라고 잠정적인 결론을 내고 GDI 개체 수를 확인한번 해보고 싶다고 말씀드렸습니다. 아니나 다를까 해당 프로그램의 GDI 개체수가 10,000 개 였습니다. 그래서 부랴 부랴 ..
Dependency Walker
·
개발/연구
이미 아는 사람은 다 아는 Dependency Walker 입니다. 프로그램을 실행시켰을 때 위와 같이 에러 메세지가 나타날 경우, 디펜던시로 해당 실행파일을 열어보면 아래와 같이 DLL이 해당 시스템이나 폴더에 존재하지 않는 것을 발견할 수 있습니다. "?" 로 나타나는 MSVCR80.DLL 파일을 해당 폴더나 시스템 폴더에 복사해주면 해당 exe 파일은 정상적으로 실행됩니다.
꽁짜로 영화, 유틸등을 다운 받아 보자~! 2탄!
·
일상
올해 1월 초에 "이제 뉴스그룹을 이용하여 돈 안내고 꽁짜로 영화 다운 받아 보자"라는 포스팅을 올린적이 있습니다. 많은 분들이 댓글도 다시고 스크랩도, 퍼가기도 많이 했었죠. (퍼가는 건, referer를 보면 다 나오는 건 아시죠?, 그러니 출처같은 건 꼭 기입해주셔야 합니다.) 어차피 이런 글은 공유하기 위해 올리는 것이기 때문에 CC라이센스에 반하지 않는 한 퍼가셔도 좋습니다. 이번에는 다운받기 2탄을 준비했습니다. 먼저번의 핵심이었던 뉴스그룹을 이용하는 건 약간의 제약사항이 있습니다. 그것은 ISP가 원할하게 지원을 해줘야만 한다는 것이죠. 이미 커질데로 커진 우리나라의 KT나 파워콤, 하나로 등의 ISP(인터넷 서비스 제공업체, Internet Service Provider)를 제외하고 지역 ..
WM5 슬라이딩 아이콘 메뉴 제작 완료
·
개발/모바일
Scheduler Blue에 들어갈 슬라이딩 메뉴를 거의 다 만들었습니다. 메뉴바를 통한 UI가 아니라 포켓플래너와 같이 슬라이딩 아이콘 메뉴를 통해서 프로그램을 사용할 수 있도록 만들려고 합니다. 하지만 메뉴는 약간 다르게 할 생각입니다. POOM(PIM)을 통해서 일정, 작업을 표현할 생각이며, SQLDB를 사용하여 금전출납관련 기능을 포함할 예정입니다. 그래서 주요 3가지 작업을 할 수 있는 프로그램이 될 것 같습니다. 일정보기는 목록형태, 일간, 주간, 월간보기를 선택할 수 있으며, 작업은 새작업추가, 진행중인 작업, 지연된 작업, 완료된 작업을 구분해서 선택할 수 있으며, 금전쪽은 수입입력, 지출입력, 보고서, 전체 목록 (아직미정) 을 선택할 수 있게 할 예정입니다. 그리고 마지막 아이콘은 설..
PDA 투데이 화면 아이템 디버깅 하는 방법
·
개발/연구
요즘 만들고 있는 일정관리를 투데이 화면에 보여주기 위해 플러그인을 만들고 있는데.. 맨날 MFC 만 하다가 Win32 로 코딩하려니.. 안습입니다.. ㅠ_ㅠ 젤루 편한 CString, CArray, CStdio 류를 못 쓰게 되니.. 직접 구현해야 하는데.. -_ㅡ; 아무튼 투데이 화면에 플러그인을 등록하고 레이아웃 및 테스트, 디버깅 하려니 완전 삽질이네요. MSDN에 아래와 같은 글이 있긴 합니다만... Debugging a Custom Item One of the problems with developing a Today screen item is how to force the Today screen to unload a custom item so that a developer can downlo..
임의 프로그램의 네트워크 통신 내용을 확인하기
·
개발/연구
예전에 한번 0xCC를 이용하여 함수 스니핑에 관한 글을 읽은 적이 있습니다. 실제로 개발하고 디버깅하면서 원리는 대충 알고 있었지만 한번은 그대로 만들어 보고 싶어서 간단히 만들었습니다. 중간 중간 원문에 기술되어 있는 코드가 애매하거나 적절하게 구현되어 있지 않은 부분이 있어 codewiz님으로 부터 조언을 듣고 만들었습니다. 다만 WS2_32.DLL 의 recv 와 send 에만 0xcc 를 박기 때문에 다른 API 를 통해서 통신을 하게 된다면 스니핑을 할 수 없다는 것이 아쉽습니다. 간단히 사용방법을 알려드리겠습니다. 먼저 실행시키면 위와 같습니다. 네트워크 패킷을 감청할 프로그램을 선택해야 합니다. 만약 스파이넷을 실행시키고 난중에 실행시킨 거라면 새로고침을 클릭하여 목록을 갱신합니다. 테스트..