GUI 프로그램이 갑자기 죽어버릴 때, 한가지 디버깅 방법
·
개발/연구
부산에서 대학을 졸업하고 처음 회사에 입사했을 때, 회사의 프로그램이 시연도중 갑자기 죽어버린 경우가 있었습니다. 시연 처음부터 잘 되던게 어느 시점부터 갑자기 프로그램 화면이 깨어지면서 죽어버리는 것이었죠. 실제 개발을 하던 사람들은 막상 벌어지는 상황에 이것 저것 머릿속으로 확인을 하고 있는지라 쉽게 원인을 알 수 없게 됩니다. 사실 제가 갔을 때는 이미 릴리즈 전 단계여서 제가 참여한 부분이 크지 않아 저는 마음편히 왜 그럴까 하고 생각을 했었습니다. 그러다가 결국 판단 내린 것이 프로그램이 깨어진 걸로 보아 GUI 모듈이다 라고 잠정적인 결론을 내고 GDI 개체 수를 확인한번 해보고 싶다고 말씀드렸습니다. 아니나 다를까 해당 프로그램의 GDI 개체수가 10,000 개 였습니다. 그래서 부랴 부랴 ..
꽁짜로 영화, 유틸등을 다운 받아 보자~! 2탄!
·
일상
올해 1월 초에 "이제 뉴스그룹을 이용하여 돈 안내고 꽁짜로 영화 다운 받아 보자"라는 포스팅을 올린적이 있습니다. 많은 분들이 댓글도 다시고 스크랩도, 퍼가기도 많이 했었죠. (퍼가는 건, referer를 보면 다 나오는 건 아시죠?, 그러니 출처같은 건 꼭 기입해주셔야 합니다.) 어차피 이런 글은 공유하기 위해 올리는 것이기 때문에 CC라이센스에 반하지 않는 한 퍼가셔도 좋습니다. 이번에는 다운받기 2탄을 준비했습니다. 먼저번의 핵심이었던 뉴스그룹을 이용하는 건 약간의 제약사항이 있습니다. 그것은 ISP가 원할하게 지원을 해줘야만 한다는 것이죠. 이미 커질데로 커진 우리나라의 KT나 파워콤, 하나로 등의 ISP(인터넷 서비스 제공업체, Internet Service Provider)를 제외하고 지역 ..
PDA 일정관리, Scheduler v1.0.0.4 APP 업데이트
·
개발/모바일
Scheduler v1.0.0.4로 업데이트 되었습니다. 수정된 부분은 아래와 같습니다. * 기본 UI 의 Flickering 제거 * 프로그램 실행시 오늘날짜에 포커싱 * 방향키로 날짜 이동가능 * 일정 목록에서 일정 수정 가능 * 팝업메뉴에서 일정 추가시 선택된 날짜 자동 입력 * 일정 추가시 시간 입력 활성/비활성 가능 * 기능확장을 위한 메뉴 확장 * 업데이트 방법 업데이트를 하기 위해서는 아래의 실행파일을 PDA의 \프로그램 파일\Scheduler\ 폴더에 있는 이전 파일과 교체하시면 됩니다. P.S. 이번 버전의 버그 리포팅을 바탕으로 디버깅 후 투데이 플러긴을 업데이트 하여 1.0.0.5통합 버전을 배포할 예정입니다. 많은 리포팅 바랍니다.
WM5 APP 전체화면으로 나타내기(2)
·
개발/연구
이전 포스팅에서 WM5 환경에서 전체화면을 사용하기 위해 테스트바와 메뉴바, 메뉴바에 포함된 SIP 버튼을 숨기는 방법을 포스팅했었는데요. 에뮬레이터에서는 100이면 100 모두 숨겨지던데.. 왠걸.. 제 BM500에서는 10에 5번은 덩그러니 SIP 버튼만 보여지는 현상이 발생하더군요. 그래서 pdn 에서 다시 조사를 해봤더니.. 같은 현상을 나타내어 질문을 올리신 분이 계시더군요. 그 분이 해결한 방법은 아래와 같이 빈 메뉴바를 생성하여 그 메뉴바 자체를 숨기는 방법을 사용하면 100% 해결할 수 있다고 합니다. SHMENUBARINFO mbi; memset(&mbi, 0, sizeof(SHMENUBARINFO)); mbi.cbSize = sizeof(SHMENUBARINFO); mbi.hwndPar..
WM5 슬라이딩 아이콘 메뉴 제작 완료
·
개발/모바일
Scheduler Blue에 들어갈 슬라이딩 메뉴를 거의 다 만들었습니다. 메뉴바를 통한 UI가 아니라 포켓플래너와 같이 슬라이딩 아이콘 메뉴를 통해서 프로그램을 사용할 수 있도록 만들려고 합니다. 하지만 메뉴는 약간 다르게 할 생각입니다. POOM(PIM)을 통해서 일정, 작업을 표현할 생각이며, SQLDB를 사용하여 금전출납관련 기능을 포함할 예정입니다. 그래서 주요 3가지 작업을 할 수 있는 프로그램이 될 것 같습니다. 일정보기는 목록형태, 일간, 주간, 월간보기를 선택할 수 있으며, 작업은 새작업추가, 진행중인 작업, 지연된 작업, 완료된 작업을 구분해서 선택할 수 있으며, 금전쪽은 수입입력, 지출입력, 보고서, 전체 목록 (아직미정) 을 선택할 수 있게 할 예정입니다. 그리고 마지막 아이콘은 설..
WM5 APP 전체화면으로 나타내기
·
개발/연구
요즘 틈틈히 Scheduler 의 POOM(PIM) 버전을 만들고 있습니다. 일단 프로젝트명을 Scheduler Blue라고 가칭하고 제작 중에 있는데, 기본 컨셉은 2003용의 Pocket Planer를 기준으로 작성하고 있습니다. 다만 Pocket Planer는 풀 화면을 사용하여 320x240 화면 모두를 프로그램 영역을 사용하여 제작하였더군요. 예전 학부시절에 PDA 블루투스 테트리스 게임을 만들었을 때 사용했던 전체화면 코드가 WM5에서는 제대로 작동하지 않더군요. PDN이나 Codeguru, CodeProject 등의 KB에서 관련 코드를 모두 적용해 보았는데도 테스크바는 사라지더라도 하단의 SIP을 포함한 메뉴바는 제대로 사라지지 않아 고생을 좀 했습니다. 그래도 역시 삽질에는 무너지더군요...
PDA 일정관리, Scheduler v1.0.0.4 TP 긴급 업데이트
·
개발/모바일
Scheduler 1.0.0.4 Today Plugin 긴급 업데이트입니다. 부산에서 구정을 지내고 있는 중에 구정이 지났음에도 불구하고 Today Plugin에 설날이 계속 다음일정으로 나타나더군요. 혹시나 했는데, 역시나 다른 분께서 오류보고를 하셔서 긴급하게 분석하였습니다. 모듈을 분석하여 보니, 음력에 반복지정되어 있을 경우, 음력에 해당하는 양력의 날짜를 계산하기 위해 음력의 기준 날짜를 입력시 기록되어 있는 정보를 토대로 계산하면서 발생한 것으로 분석되었습니다. 반복일 경우 현재의 년도로 갱신되어 음력에 해당하는 양력이 나와야 하는데 말이죠. 따라서 아래와 같이 나왔다고 볼 수 있습니다. 입력시 2007년 1월 1일 음력 양력계산 (2007, 1, 1) -> (2007, 2, 18) 반복여부확..
Pocket PC 에서 AfxLoadString 사용하기
·
개발/연구
일반 Win32 프로그램을 제작할 때 문자열 정보는 리소스의 String Table에 넣어두고 사용할 경우가 많습니다. 또한 다중 언어를 지원하는데도 유용하게 사용할 수 있으니까요. 오늘 오랜만에 Pocket PC 에서 개발을 하는 도중 String Table 을 사용하려고 하니 AfxLoadString 을 사용할 수 없더군요. 해서 찾아보니 Windows CE 기반에서는 ::LoadString(HINSTANCE, UINT, LPTSTR, int) 를 사용해야 되더군요. 여기서 MS가 Windows Mobile 기반을 위해서 약간의 기능을 더 추가한 것을 발견했습니다. 보통 스트링 테이블에서 문자열을 가져오기 위해서는 TCHAR szName 등을 선언하고 해당 변수에 문자열 정보를 얻어오는 방식이었는데,..
PDA 세계지도, 세계시간 유틸리티, World Map 베타판 공개
·
개발/모바일
세번째 유틸리티 개발이 마무리 되어 갑니다. 애초에 휴대폰(애니콜, 모토로라)에 기본으로 포함되어 있는 유틸리티를 모두 PDA용으로 개발하여 휴대폰 못지 않은 통신기기를 만드는 것을 목표로 하였습니다. 아직 한~참 멀었지만 그래도 어느정도 진척을 보이고 있네요. 이번에 개발중인 프로그램은 세계지도 및 세계시간을 확인할 수 있는 유틸리티입니다. 현재 세계지도 및 배율 1:1 ~ 1:10 까지 지원합니다. 그리고 세계시간은 대한민국만 입력되어 있는 상태입니다. 기존의 핸드폰에 입력되어 있는 각 나라 목록을 그대로 옮기고 몇가지 기능 수정을 한 후 배포할 예정입니다. 좋은 아이디어를 알려주시면 가능한 수렴하여 개발하도록 하겠습니다. 내일은 우리나라 대통령을 뽑는 날입니다. 덕분에 회사도 쉬고.. 여가 시간이 ..
PDA 단위변환(환산) 유틸리티, Unit Converter V 1.1
·
개발/모바일
Unit Converter V1.1이 나왔습니다. 몇 일전에 배포한 1.0 버전에서 음수 입력이 불가능 부분을 수정하였으며 입력시 버튼 입력을 가시화 할 수 있도록 버튼 효과를 추가하였습니다. 그 외에 몇몇 분들이 주셨던 의견은 현재 추가 구성중이며 다른 의견 또한 기다리고 있습니다. 현재 6가지의 타입의 단위를 지원하고 있지만 향후 10개정도로 확장할 생각입니다. 해외에서 제작된 단위변환 유틸리티등을 분석하고 있으며 최대한 공학도가 아쉬움없이 사용할 수 있도록 만들겠습니다. 또한 먼저 제작하였던 Scheduler 또한 자체 SQL DB 와 POOM(Pocket Outlook Object Model)을 도입시키기 위해 분석중에 있습니다. 국내 PDA 유저의 활성화와 한국형 유틸리티 보급을 위해 여러분의 ..
PDA 단위변환(환산) 유틸리티, Unit Converter V 1.0
·
개발/모바일
예전에 쓰던 핸드폰 중에 애니콜의 단위변환 기능이 있었는데 간혹 요긴하게 사용될 때가 많았었습니다. 그 뒤에 바뀐 모토로라 레이져폰에는 그 기능이 없더군요. ㅠ_ㅠ 레이저 쓰는 동안 무척이나 쓸일이 많았었는데 어지간히 답답했었습니다. 그래서 PDA에 단위변환 하는 유틸리티가 있으면 좋겠다는 생각에... 사실 있는지 없는지 찾아보진 않았습니다만..^^; 아시다시피 단위변환은 기준값만 있으면 곱하기 한번 나누기 한번이면 끝나는 것이기 때문에 간단하게 만들어 보았습니다. 기존 일정관리 Scheduler 를 만들고 나서 보니 PPC 2003 유저분께서 WM5 뿐만 아니라 PPC 2003 유저도 많다고 하여 이번 프로젝트를 시작할 때 플랫폼을 PPC 2003, Smartphone 2003, WM5 를 모두 적용시..
PDA 일정관리, Scheduler v1.0.0.1 업데이트
·
개발/모바일
수정 사항 1. 일정보기 - 알파블렌딩 적용, 일정이 1개 이상일 경우 페이징 방식 2. 일정추가 - 제목 10자, 메모 30자로 확장 3. 프로그램 정보 - 수정 4. 아이콘 제작 - 달력의 크리스마스 공휴일에 만년필로 일정을 적으려는 컨셉 ㅋㅋ 다음 주 계획 1. 투데이 플러그인 완료 2007/12/02 - [PDA 소프트웨어 개발/일정관리] - Scheduler V1.0.0.3 안정화 버전
PDA 일정관리, Scheduler 베타판 공개
·
개발/모바일
블루버드사의 PDA 폰인 BM500 을 구입한지 딱 한달이 되었습니다. 그 동안 회사건 집에서건 짬짬이 일정관리 프로그램을 만들어 드디어 베타버젼까지 왔습니다. 기존의 일정관리 및 이미 설치되어 있는 일정관리의 불편함을 모두 없애고 간편하고 심플하게 제작하려고 했습니다. 위 화면은 제 메인화면.. ^^; 아래는 일정관리를 실행시켰을 때의 첫 화면입니다. 아래의 화면은 팝업 메뉴를 띄었을 때의 화면입니다. PDA는 스타일러스 팬을 꾸~욱 누르고 있으면 원을 한번 그리고 팝업이 뜹니다. MSDN 에서는 그것을 Tab-and-Hold 라고 칭하는데.. 일반 윈도우의 팝업 메뉴 구현방법과는 많이 다르더군요. 아무튼.. 팝업 메뉴는 아래와 같이 나옵니다. 메뉴의 음력 보기를 선택하면 아래와 같이 나옵니다. 특정 ..
Pocket PC, Windows Mobile 5 개발 시작
·
개발/연구
이제 PDA 도 생기고 해서 본격적으로 Pocket PC ( based Windows Mobile 5 ) 기반으로 프로그램을 만들어 보고 있습니다. 생각에는 기존에 쓰고 있던 VS 2003 .Net 기반으로 할려고 했습니다만.. WM5 는 VS 2005 기반으로만 개발할 수 있더군요. 어쩔 수 없이 VS 2005를 설치했습니다. 결국에 컴퓨터에 VS 6, VS 2003, VS 2005 를 모두 설치하게 되었습니다. VA도 2005를 지원하더군요. ^^; 그리고 WM5 SDK 도 깔고.. 테스트 프로그램을 돌리다 보니.. Active Sync 에 PDA 를 물려서 바이너리 받아 실행시키고 디버깅하는 것이 시간이 적지 않게 들더군요. 그래서 일단 개발 및 테스트는 모두 에뮬레이터 환경에서 하는게 낫다 싶어 ..
[정답공개] 전산학 전공자 및 프로그램 개발자들에게.. "To be or not to be?" 의 정답은!? 'Tistory 초대장'을 드립니다.
·
일상
휴가기간에 서점에서 몇 몇 재미있는 서적들을 보는 중 재미있는 퀴즈가 있어 포스팅합니다. 다분히 전산학 전공자 및 프로그램 개발자들에게 해당되는 퀴즈입니다. "To be or not to be?" 의 답은 무엇일까요? 또한 그 과정을 기술하셔야 합니다. ^^ P.S. : 넌센스 퀴즈 입니다. 다분히 문장만을 분석하시면 안돼구요, 약간의 센스가 필요합니다. 정답을 맞추시거나 혹은 틀리시더라도 댓글로 참여하신 분들에게는 티스토리(Tistory) 초대장을 드리겠습니다. 틀리더라도 초대장을 보내드릴테니 e-mail 주소와 함께 이름, ID 를 남겨주세요 ^^; 정답을 공개합니다. 거의 모든 분들이 if 문의 condition 으로 가정하고 문제를 푸셔서 true, false 밖에 도출하지 못했네요. 그냥 sta..