이것도 예전 이글루스블로그에서 옮겨옴.#include _CrtDumpMemoryLeaks(); _CrtSetBreakAlloc( 에러 번지? ); 회사에서 일하면서 처음 알게 된 것... 그 전엔 혼자 공부하다보니 누수가 나건 말건 했으니.. 어쨋든 _CrtDumpMemoryLeaks()을 코드 끝 부분에 넣고 디버깅을 함. 그러고 나서 이짓 저짓 하다가 닫으면 메모리 누수가 난 곳들을 디버그 출력창에 에러번지? 들을 뱉어냄. 그러면 그 에러번지들을 _CrtSetBreakAlloc에 넣고 디버깅하면 해당 부분에서 브레이크가 걸림
이것도 예전 이글루스 블로그에서 옮겨 온건데.. 지금 보니 뭔말인지 잘모르겠네 ㅋㅋ... 으흠. 전에 책에서 보기로 컴파일러가 알아서 inline화한다고 본거 같은데 흠냐 역시 정리를 해야하는데.. 어쨋든 함수를 inline했을 시 매크로함수와 같이 컴파일시 함수호출방식이 아니라 그 지점에 함수를 박아?넣는다라는 어쨋든 일반 함수로 했을시보다 컴파일 속도가 빠르다. 하지만 함수정의부분이 헤더파일에 있어야한다. 컴파일시 함수의 사이즈를 알아야 하기때문이다. 또한 매크로함수와 비슷하지만 매크로함수의 제약인 변수타입을 지정할 수 없이 치환하는 형태에서 좀더 편하게 쓸 수 있다. 아 말이 이상하게 꼬이지만 뭐. 시간봐서 수정을 해야겠다.
예전에 쓰던 이글루스 블로그에 적은 것들을 옮겨 와야겠다.. 넘 횡하네 _MSC_VER 이름 그대로 마이크로소프트 컴파일러 버전이다. #ifdef _MSC_VER #pragma comment(lib,"Irrlicht.lib") #endif _MSC_VER 값 컴파일러 버전 Visual Studio 버전 ( _MSC_VER => 1000 ) 4.0 ( _MSC_VER => 1100 ) 5.0 ( _MSC_VER => 1200 ) 6.0 vs6 ( _MSC_VER => 1310 ) 7.1 vs2003 ( _MSC_VER => 1400 ) 8.0 vs2005 ( _MSC_VER => 1500 ) 9.0 vs2008 ( _MSC_VER => 1600 ) 10.0 vs2010