Loading...

Windows Texture Viewer

dds 뷰어 찾다가 발견했다. 여태까지 왜 이런게 있는지 몰랐을까. dx뷰어보다 빠르다. 간단히 어떤건지 확인해 볼 때 편할것 같다. http://developer.nvidia.com/object/windows_texture_viewer.html Windows Texture Viewer WTV was developed by Tomas Blaho for simple DDS viewing, especially for those DDS files with an alpha channel. If you're working with DDS files, you may also find our DDS Utilities, Adobe Photoshop Plug-ins, and DDS Thumbnail Viewer to b..

c++ 생각하기 5.

Pimple idiom Pimpl은 Pointer to IMPLementation의 약자. 기본적인 내용은 인터페이스와 구현을 분리한다는 것. 실제 멤버를 추가해도 기본 layout에 변화를 주지 않기 떄문에빌드시간을 줄일 수 있다(재컴파일 하지 않는다). 의존성을 줄인다. 하지만 코드가 늘어나고(layout과 실제내용을 따로 작성), 동적 할당과 해제를 해야 한다. 참고 http://mkseo.pe.kr/blog/?p=841 http://decoder.tistory.com/616

EnterCriticalSection 사용할때 주의 할점

출처 : http://blog.naver.com/process3?Redirect=Log&logNo=20026509730 CriticalSection 은 vista 에서 데드락에 빠질 수 있습니다. 이 내용에 대해서 말씀 드리는 것은 아니에요 [문제 발생 원인] EnterCriticalSection 의 API 를 MSDN 에서 확인 해 보면 리턴값이 VOID 형 입니다. 즉, 이 함수를 호출한 후에 성공했는지 실패했는지 확인 할 수가 없습니다. 그리고 일반적으로 우리가 사용 할 때도 리턴값을 확인하지 않습니다. 그런데 만약에 시스템에 메모리가 low memory situations 상태 일 때(가용메모리가 부족 할 때) EnterCriticalSection 함수 호출한 곳에서 Exception 이 발생 합..

c++ 생각하기 3.

1. new, delete, operator new, operator delete, placement new new와 operator new의 차이? new의 동작은 메모리의 할당, 생성자를 호출하여 초기화 수행이다. operator new의 동작은 메모리의 할당. new 연산자는 우리가 바꿀 수 있는 부분이 아니다. 우리가 바꿀 수 있는 부분은 객체를 담을 메모리를 할당하는 방법 뿐이다. new 연산자는 메모리 할당을 위해 어떤 함수를 호출하는데 이 함수를 오버로딩 하는 것이다. 이것이 operator new이다. 즉 우리는 생성자까지 호출되어 초기화된 객체만을 받을 수 있는 것이다. 왜냐하면 객체는 딱 한번 초기화 될 수 있기 때문이다. 하지만 할당받은 미초기화 메모리가 있다면 이를 객체형태로 만들고..

2010. 3. 13. 21:15

산천어축제

갔다온지 한달이 지나서야 포스팅을하네..헐. 천희햄.차타고.산천어축제~~~ 이때까지만 해도..걱정이었지...너무많이잡으면..다.못들고오는데..하면서말야.. 천희햄얼굴이.살짝나오긴했지만...잘생겼으니까.봐주시겠지.머.ㅎㅎ 휴가쓰고.월욜에간건데....헐..사람들이웰케많아..ㅡㅡ;. 중간중간에.무릎꿇고.엎드려있는사람들도있고...무슨.기도하는줄알았네..ㅎ 사진만봐도.춥다..진짜.머리가얼정도로.추웠다는.ㅡㅡ; 자리를잡고.한번.낚아볼까...했는데말야... 30분째...입질이없다...손가락은.얼어가고있고... 삼십분정도지나서.내가.한마리를.잡아주었지.ㅎㅎㅎㅎ 산천어다~~~ 한시간정도.더잡고있었는데...결국.더이상못잡고.. 셋의 수확은 한마리가.전부...ㅡㅡ;..머야!!!!!!이건!!!! 결국.옆에서.낚시하고있는.이...

winapi의 오류를 문자열로 출력하기.

win api의 실패시 오류값은 dword. 내부로 들어가보면 알수없는 숫자들이 많다. 이를 문자열로 전화해서 출력하기 위해 GetLastError으로 에러 숫자코드를 받아 FormatMessage를 사용하여 바꾸어 준다. #include void PrintError(DWORD dwErrorNo); ... void PrintError(DWORD dwErrorNo) { LPVOID lpMsgBuf; if (!FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dwErrorNo, MAKELANGID(LANG_NEUTRAL, SUBLAN..

DebugBreak 및 __debugbreak

msdn : http://msdn.microsoft.com/en-us/library/f408b4et.aspx 코드의 어떤 위치에서든 DebugBreak Win32 함수 또는 __debugbreak 내장 함수를 호출할 수 있습니다. DebugBreak 및 __debugbreak는 해당 위치에 중단점을 설정한 것과 같은 효과가 있습니다. DebugBreak는 시스템 함수에 대한 호출이므로 중단 후 올바른 호출 스택 정보가 표시되도록 하려면 시스템 디버그 기호를 설치해야 합니다. 그렇지 않으면 디버거에서 표시하는 호출 스택 정보가 한 프레임 정도 차이가 납니다. __debugbreak를 사용하는 경우에는 기호가 필요하지 않습니다. DebugBreak and __debugbreak 윈도우에서 제공하는 break..