Cool stuff

@codemaru · February 06, 2009 · 6 min read

재미있는 기술 문서들을 모아놓는 코너입니다.심심하신 분들은 한번씩 읽어보세요.
읽는 만큼 쭉쭉 늘어나는 내공을 느끼실 수 있을 겁니다.
Best Practices for Creating DLLs
DLL의 초기화, 종료 코드를 안전하게 작성하는 방법에 대해서 알려줍니다.
DllMain에는 생각보다 엄청 복잡한 비밀이 많이 숨겨져 있다죠.
이상하게 되는 경우에 대한 시나리오가 같이 있었으면 금상첨화일뻔 했겠단 생각이 듭니당.http://www.microsoft.com/whdc/driver/kernel/DLL_bestprac.mspx

What's new in Visual C++ 2008
Visual Studio 2008이 정식 출시되었습니다.
아래는 Visual C++ 2008의 새로운 기능들을 소개하는 페이지 입니다.
http://msdn2.microsoft.com/en-us/library/bb384632(VS.90).aspx

Visual C++ 2008 Express Edition은 아래 페이지에서 무료로 다운로드 받으실 수 있습니다.
http://www.microsoft.com/express/download/default.aspx

C++ explicit 키워드
http://yesarang.tistory.com/58

Linux Kernel Source
리눅스 커널 소스 사이트 입니다. 크로스 레퍼런스로 만들어놔서 보기 좋네요. *^^*
http://lxr.linux.no/source/

절제의 미학
The Old New Thing 블로그에 재미난 글이 올라왔네요. 글을 쓸 때 무엇을 추가할지 보다는 무엇을 뺄지를 생각하라는 내용입니다. 그런 예를 설명하는 부분이 정말 압권입니다. 기술 문서를 쓸 때 항상 저러한 오류를 범하곤 하죠. 그런데 댓글에서도 나왔듯이 무조건 빼는 것 보다는 대상 독자층에 맞는 내용만을 서술하는 것이 더 좋을 것 같습니다.
http://blogs.msdn.com/oldnewthing/archive/2007/10/03/5249866.aspx

코드 생성해서 실행시키기
원래 이 분야가 개척된 이유는 조금 다른데, 요즘은 보안쪽에서 더 관심을 가지고 있는것처럼 보입니다. 동적으로 코드를 생성하고 실행시키거나 실행 중에 코드 자체가 변형되는 것들이죠. 이런 식으로 런타임에 생성되거나 변형되는 코드는 고전적인 방법으로 리버싱하기가 무척 힘들기 때문에 보안쪽에서 많은 관심을 가지는 듯 합니다.
http://www.codeproject.com/useritems/Self-generating-code.asp

예외 처리
C++에서 새로 생겼고 가장 이해하기 힘들고, 가장 의견이 분분한 내용 중 하나가 예외 입니다. 특히나 어떤 상황을 예외로 규정할지에 대해서는 정말 다양한 의견이 있습니다. 이것 또한 종교적인 논쟁의 한 부분이기도 합니다. 하지만 그 논쟁 사이에서 많은 새로운 관점들을 배울 수 있을 것 같아서 모아봤습니다. c++ 그룹에서 진행된 예외와 관련된 글타래들 입니다.

예외처리 매커니즘은 좋다. 하지만 무엇을 예외로 처리할 것인가?
무엇이 예외적인 상황인가?
왜 예외를 사용하는가?
생성자에서 예외를 던질까? 말까?
어떤 예외들이 있을까?

스레드 스위칭
http://www.codeproject.com/useritems/threadswitch.asp

Vim Tip
저는 소스 코드 편집을 주로 vim으로 합니다. 웹에 올리거나 기사를 쓸 때 주로 편집하는 편인데 이 때 새로 줄이 길어서 종종 문제가 되곤 합니다. 아래 명령어를 사용하면 80 글자 이상되는 부분은 색깔을 표시해 줍니다. 편집할 때 도움이되죠. 80을 다른 숫자로 변경해 주면 길이를 바꿀 수 있습니다.
:match Error /%>80v./

C++ 멤버 함수 포인터 크기
http://blog.naver.com/drvoss/20041594354

C/C++에서 전역 변수가 초기화 되는 과정
http://blogs.msdn.com/vcblog/archive/2006/10/20/crt-initialization.aspx

__purecall에 관해서
http://blogs.msdn.com/oldnewthing/archive/2004/04/28/122037.aspx

투명 PNG 디스플레이 하기
http://www.codeproject.com/useritems/transparent__png.asp

메모리 릭 탐지하기
http://minjang.egloos.com/1414494

DllMain에서 스레드 생성하면 데드락 걸릴까??
http://blogs.msdn.com/oldnewthing/archive/2007/09/04/4731478.aspx

다른 프로세스 TEB, PEB 구하기
http://readdie.woweb.net/entry/...

윈도우 사용 시간 제한 방법
http://www.codeproject.com/useritems/ProjectFromHell.asp

네이티브 애플리케이션
http://www.microsoft.com/technet/sysinternals/information/NativeApplications.mspx

Windows 2000/XP에서 동작하는 리얼 타임 모듈
http://www.codeproject.com/system/RealTimeModule.asp

Standard Annotation Language(SAL)을 이용한 버퍼오버런 방지 기술
http://blog.naver.com/drvoss/20041282591
http://blog.naver.com/drvoss/20042737417

MFC MDI 프레임워크에서 핸재 생성된 MDI 자식들 순회하는 방법
http://support.microsoft.com/default.aspx?scid=kb;en-us;131994

PE 포맷 체크섬 알고리즘
http://www.codeproject.com/useritems/PEChecksum.asp

유사 랜덤 제너레이터
http://www.codeproject.com/useritems/PRNG.asp

모질라 브라우저 임베딩 시키기
http://www.codeproject.com/useritems/iemozilla.asp

Vectored Exception Handling (VEH)
http://msdn.microsoft.com/msdnmag/issues/01/09/hood/
http://www.codeproject.com/useritems/VEH.asp

C++ CLI Micro Chess
http://www.codeproject.com/cpp/cpp_microchess.asp

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중