|
포토로그
메뉴릿
주저리 주저리
이 블로그는 구글 애드센스를 통해 월 $100 이상의 수익을 창출하고 싶습니다. 방명록 인사말은 이곳에 about madchick 미친병아리 소개 홈페이지 서평모음 미투데이 스프링노트 프로그래밍 이야기 포토로그 포토갤러리 내가 하는 일 다울소프트 네오테스트 티칭메이트 네오웹보드 렉쳐메이커 웹수식편집 요즘 읽는 책 ![]() 닷넷 프로그래밍 정복 ![]() Programming Collective Intelligence ![]() Applied C++ ![]() Art of UNIX Programming 자주 놀러가고 싶은 곳 강남컴퓨터서적 ZDNet Korea Bellona2 OS MSDN 매거진 GotW.ca C/C++ User's Journal Gamasutra O'reilly Open Book RaySoda mydoob Visual C++ News Group wired 올블로그 오픈 블로그 블로그 코리아 블로그 플러스 다음 블로그뉴스 ![]() 라이프 로그
|
사내 게시판에 올렸던 내용중 모아둘만한 것들을 모두 내 블로그에 옮겨본다.. 왜냐면 여기에 모아두는게 더 찾기 편하니까.. 여러 게시판에 흩어져 있는 정보들은 오히려 더 검색이 힘든 단점이 있는 것 같다.. 왜 Microsoft Exchange 서버는 게시판 통합검색은 지원을 안하는지 모르겠다.. 흐흐.. 어쩜 우리가 사용하는게 5.5라서 그런지도 모른다.. 시대에 맞게 회사에서도 Exchange 서버를 최신 버젼으로 업그레이드 했어야 하는건데.. 냠냠.. 지뢰찾기 프로그램 해킹?? 이건 C# 코드이긴 하지만, 재미나게 읽은 내용이라 같이.. 지뢰찾기 프로그램의 메모리를 덤프해서 지뢰가 있는 곳을 보여주는 프로그램.. Minesweeper, Behind the scenes 나중에 나도 리버스 엔지니어링을 취미삼아 해보게 되면 참조하려고.. 참 신기하다 어떻게 그 위치가 지뢰 정보인줄 알았을까.. 어셈블리를 공부해야 하는 이유가 또하나 늘어나는 순간이기도 하다.. SEH 처리용 클래스 누메가, 바운즈체커로 유명한 개발자라 아는 사람들이 많을 거다.. Matt Pietrek의 멋진 클래스, 오래전부터 MSJ에 기고한 글들도 많기로도 유명한데 97년도에 기고한 글중에 참 유용한 클래스가 있었다.. 좀 더 일찍 알았으면 더 좋았으련만.. 프로그램이 비정상 종료되었을때의 콜스택을 덤프해준다.. 빌드시 map 파일을 만들어뒀다면 어디서 죽었는지 비교적 쉽게 찾아볼 수 있다.. 버그 잡는데 유용하다.. 특히 릴리즈 후 특정상황에서만 죽는 버그.. 다른 용도로도 활용될 수 있는데, 클래스를 조금 수정하면 죽은 프로그램을 계속 재실행 시킬 수 있다.. IE 처럼.. 서버 프로그램의 경우는 유용할 수도 있다.. MFC DLL Ordinal 확인하기 우리 함수 내부에서 죽은 경우는 map 파일을 사용하여 함수 번지수를 확인해볼 수 있는데 MFC DLL 등에서 죽은 경우 좀 난감한 경우가 있다.. 다른 DLL들은 모르겠지만, MFC DLL의 경우는 다음과 같은 방법으로 확인이 가능.. VC++ 6.0의 경우위의 파일을 열어 ordinal 번호를 검색해보면 함수명이 뭔지 알 수 있음. 파일은 디버그용, 유니코드용 각각 조합별로 존재하니 적절한 것을 찾아보자. 바로 위에서 소개한 "SEH 처리용 클래스"를 사용할때도 필요한 경우가 많다.. 물론 최상의 경우는 이런거 찾아보게되는 상황을 만들지 않는게 짱이다.. 버그 없는 프로그램 개발.. 인간이라 실수를 할 수는 있겠지만, 충분히 줄일 수 있을 것이다.. VC++ 6.0 STL의 버그픽스 템플릿을 많이 사용하는 C++ 개발자들에게는 VC++ .NET 이전 버젼들은 C++ 컴파일러도 아니다라고 할 정도로 표준 C++을 제대로 지원 못하기로 유명한데, 그나마 이 버그들을 직접 수정하면 좀 더 쓸만해진다.. 뭐, 여전히 부족하긴 하지만.. 제대로 쓰려면 VC++ .NET 2003을 사용해야 한다.. Fixes for Library Bugs in VC++ V5.0/V6.0 Microsoft는 도대체 왜 서비스팩에 이런건 포함 안시키는가 모르겠다.. 최신 서비스팩을 설치했어도 이 버그픽스는 직접 해야 한다.. 생각보다 노가다다.. VC++ 6의 리모트 디버깅 활용하기 사용해보면 무척 편리한데 의외로 모르는 사람들이 많다.. 특정 환경에서 이상하게 동작하는 경우 재현이 힘들면 그 PC에서 직접 디버깅을.. 환경 세팅이 그다지 어렵지 않으니, 재현시키려고 고생하는 것 보다 경제적이다.. Remote Debugging in MSVC++ 6.0 - Step by step in the OnPaint message handler 간혹, 어떤 사람들은 리모트 디버깅이 VS .NET 부터나 가능한 것으로 아는 경우가 있는데, 그렇지 않음.. VC++ 6부터 지원되던 기능임.. 재미난 템플릿 클래스, 하위 클래스인지 여부 판별 누가 작성했는지는 몰라도, 오.. 정말 멋진 코드입니다.. 놀라운 창의력.. #include <iostream>누구도 생각지 못한 이런 생각들을 하는거 보면, 정말 창의력이 필요하다는 생각이 든다.. 창의력은 두고 두고 보답한다는데 나도 씽크빅 같은 것으로 다시 공부를 시작해 봐야하나.. C++에서 사용하는 캐스팅 연산자 C++의 새로운 캐스팅 연산자들이 등장하게된 이유를 자세히 설명해준 글.. 두번째 글은 C++의 창시자 비얀 스트로스트럽의 글인데.. 좀 짧다.. Casting in C++: Bringing Safety and Smartness to Your Programs What good is static_cast? 음.. 생각보다 읽기 힘든 내용이다.. 아무래도 내 C++ 공력이 딸려서 인듯.. 이해하기가 힘들다.. 난 쉽고 친절한 설명이 좋은데.. 흐흐흐.. 헝가리언 표기법이 C++에서 좋지 않은 이유 이제 헝가리언 표기법은 C와 Win32 API로 프로그래밍을 하던 시대의 유물로 남는가.. 하긴 알고보면 헝가리언 표기법은 챨스시모니가 Microsoft에 입사하기도 전에 만든 것 같은데.. 무자게 오래된 관행이긴 하다.. Conversations: Hungarian wartHogs 아직까진 내게도 더 편하긴 한데, 자바나 C# 같은데를 봐도 굳이 그럴 필요 없어 보이기도 하고.. 암튼 C++에서는 템플릿 때문에 별로라는 이야기인것 같음.. auto_ptr에 관련된 읽을거리 사실 난 그간 auto_ptr을 잘 사용하지 않아 왔기 때문에 별로 관심이 없었다.. 하지만 주위에서 그래도 쓰는게 훨 좋다는 이야기를 하도 많이 들어서.. Using auto_ptr Effectively GotW #25: SPECIAL EDITION: auto_ptr GotW #42: Using auto_ptr GotW #56: Exception-Safe Function Calls GotW #62: Smart Pointer Members Exceptional C++ - More auto_ptr: auto_ptr and Exception Safety Conversations #1: Re-membering auto_ptr 뉴스그룹에서 이런 저런 이야기 나누며 나온 링크들을 모조리 모아둔 것.. 이중 몇몇 내용들은 아마 Herb Sutter의 책으로도 소개되었을거다.. Template Metaprograms 오.. 아주 재미난 코드입니다.. (관련자료 보기) // Template Metaprograms실행시간이 아닌 컴파일 타임에 재귀호출이 일어나네요.. 마치 인터프리터처럼.. 후후.. 템플릿 전문화를 사용하여 1! 예외처리를 했구요.. 내 소스코드가 C++ 표준에 맞는지 궁금하다면 여기에서 확인해보자.. 간편히 확인 가능하다.. C++을 안다는 것은 뉴스그룹에서 읽었던 재미난 글을 옮겨보자.. "사람의 언어처럼, C++ 언어를 안다는 것은 단지 문법과 규칙을 안다는 것을 뜻하지는 않는다. '관용구'도 알아야 한다." 이런 글들을 읽으면서 난 아직도 멀었다는 생각이 드는건, 아직 경력과 경험이 더 필요하다는 것이겠지.. 갈길은 여전히 멀고도 멀다.. 흐흐흐.. 그러나, 뽈레뽈레.. 쿠쿠쿠.. |