Notepad2 삽질 이야기 :: 2007/10/27 17:11


재즈벌레님께서 완전히 한글화하신 버전을 아래 링크에서 다운받으실 수 있습니다.
http://jazzbug.tistory.com/130

사용자 삽입 이미지

어제 올렸던 노트패드에 툴바가 표시된지 않는 문제가 있었습니다. 노트패드 소스는 제가 수정을 전혀 안했던터라 -- Scintilla 라이브러리 코드만 변경했죠 -- 원인이 뭘까 고민을 잠깐 해봤습니다. 그러다 문득 저렇게 이뿌게 표시되야할 프로그램이 투박하게 표시되는 것에서 매니페스트(manifest) 설정이 잘못되었음을 눈치챘습니다. 하나는 금방 찾은 셈이었습니다. 프로젝트 설정에서 매니페스트를 포함해서 링크하도록 고치고 원래있던 매니페스트 리소스를 제거했습니다. 이젠 되겠지 했는데 여전히 툴바는 표시되지 않았습니다. 그래서 디버깅을 했습니다.


위 부분에서 문제가 있음을 찾을 수 있었습니다. 위 결과가 0이면 실패한 것인데 계속 0을 리턴하더군요. 답답한 것은 GetLastError도 없다는 겁니다. 단지 실패한 거죠. 이런 경우에는 보통 rbBand 구조체를 잘못 설정한 경우가 많습니다. 그래서 위쪽에 rbBand를 설정하는 부분을 꼼꼼히 살펴봤습니다. 이상하게 없더군요. 그래서 WTL의 밴드 삽입 코드를 복사해서 그 놈을 호출하도록 변경했습니다. 그래도 여전히 실패합니다. 구조체를 모두 다 채워요 여전히 툴바는 표시되지 않았습니다.

이쯤되면 막장이죠. ㅠㅠ 가장 최고의 방법은 되는 것과 비교하는 거죠. 어제 정수님께서 올려주신 버전을 OllyDbg로 꺼냈습니다. 리바 메시지 핸들러에 RB_INSERTBAND가 오는 경우에 브포가 걸리도록 설정하고 스택을 뒤졌습니다. 넘어온 구조체는 다음과 같더군요.

사용자 삽입 이미지

50이라고 선택된 곳 부터가 구조체 시작 지점입니다. RBBANDINFO의 첫 번째 필드는 cbSize로 구조체 크기입니다. 0x50바이트라는 거죠. 이번에는 제가 어제 컴파일한 바이너리를 넣고 확인했습니다. 저기에 0x64가 들어있습니다. 이제 먼가 잘못됐다는 것을 알았죠. 구조체 정의 부분으로 갔습니다.


제가 사용하는 SDK는 비스타용으로 최신 버전입니다. 0x600이상이면 이라고 정의하는 부분이 보이시죠. 그 만큼이 추가된 20바이트 였습니다. Notepad2 프로젝트에서 _WIN32_WINNT를 정의하지 않아서 자동으로 0x600으로 정의됐고, 그로인해 구조체 크기가 달라졌던 겁니다. 당연히 XP에서는 동작할리 없겠죠.

간만에 제대로 말렸네요. ㅋㅋㅋ
아래 파일은 수정된 버전입니다.



스폰서
글타래

  • 2주간 인기 글
  • 2주간 인기글이 없습니다.
Trackback Address :: http://jiniya.net/tt/trackback/635
  • Notepad2 Tango Patch + Korean translation

    Tracked from Yeon[蓮] A simple Life... | 2009/07/22 10:03 | DEL

    Notepad 3.0.20이 10월 30일에 올라왔군요. 어떤분의 블로그에 올라온 Notepad2를 보니 재즈벌레가 탱고패치한 버전인 듯 한데 패치가 적용되어 있지 않더군요. 리소스만 복사해서 붙여넣은것 같았습..

  • Gravatar Image.
    BK | 2007/10/27 23:35 | PERMALINK | EDIT/DEL | REPLY

    아.. 이제 제대로 표시가 되네요...
    정말 감사 드립니다...

    그리고.. 혹시.... 저번에 codWiz님이 한글화 하신걸 기반(? 뭐.. 거의 복사 수준이 될듯..)으로 한글화를 해볼까 하는데 괜찮을지요?

    • Gravatar Image.
      codewiz | 2007/10/28 12:54 | PERMALINK | EDIT/DEL

      된다니 다행이네요.
      그리고 한글화와 관련된 것은 아래 tt님께서 올려주신 자료가 작업하시기 좀 더 편할 것 같네요.

  • Gravatar Image.
    tt | 2007/10/28 02:12 | PERMALINK | EDIT/DEL | REPLY

    BK님 한글화 얘기가 나와서 말인데요. 공식 배포처 Notepad2 Links에 보시면 최신 버전의 한글화된 버전이 있습니다. 그걸로 하시면 더 편하실 듯 합니다. 저도 이 프로그램이 맘에들어 한글화 해볼까 했는데 양이 적지는 않더라구요.

  • Gravatar Image.
    BreathAir | 2007/10/30 16:46 | PERMALINK | EDIT/DEL | REPLY

    프로그래밍 하면서 삽질을 참 많이 하게 되더군요..
    아 이것도 능력 부족일까요? ㅠ

    • Gravatar Image.
      codewiz | 2007/10/30 18:48 | PERMALINK | EDIT/DEL

      누구나 다 삽질하는거 아닐까요? ㅎㅎ 한번 겪으면 나중에는 같은 문제에는 잘 당하지 않으니 그나마 다행이 아닐까하는 생각을 해봅니다.

  • Gravatar Image.
    | 2007/11/02 23:02 | PERMALINK | EDIT/DEL | REPLY

    관리자만 볼 수 있는 댓글입니다.

    • Gravatar Image.
      codewiz | 2007/11/03 00:31 | PERMALINK | EDIT/DEL

      괜찮아요. 제가 만든 것도 아닌데요. ㅋ
      혹시 한글화 작업을 하고 계신건가요? 그렇다면 위에 tt님께서 언급하신 것을 사용하시면 금방 만드실 수 있습니다. 시간 나면 작업해서 한글 버전을 올려놓도록 하겠습니다.

  • Gravatar Image.
    재즈벌레 | 2007/11/03 01:50 | PERMALINK | EDIT/DEL | REPLY

    아.. 그렇군요... 괜한 삽질을 할 뻔했습니다.. ㅠ.ㅠ
    공식홈에서 한글판을 다운받아서 다시 패키징해 봤습니다.
    Tango가 대세~ ^__________^

    • Gravatar Image.
      codewiz | 2007/11/05 12:16 | PERMALINK | EDIT/DEL

      멋지게 작업해두셨네요. ㅎㅎ^^;;
      리소스 툴을 어떤걸 사용하시는지 여쭤봐도 될까요?

Name
Password
Homepage
Secret