API 73

어떻게 윈도우 프로시져는 재진입 되는가?

준비물 : Visual Studio 6.0 , WinSpy++ v1.6 일단 아래와 같은 단순한 API 프로그램을 살펴보자. 그림 1Visual C++ 6.0에서 New -> Project -> Win32 Application에서 프로젝트 이름은 BULK라고 하고 첫 번째 스텝에서 A typical "Hello World!" application을 선택하여 자동으로 생성된 프로그램을 그대로 빌드하여 실행시킨 것이다. 실제로 해보면 알겠지만 대부분의 Win32 App의 기본 골격인 메인 클래스 등록, 메인 윈도우 생성, 메시지 루프, 윈도우 프로시저까지 생성해 준다. 그림 2위와 같이 메뉴에서 Help -> About 을 선택하여 모달 다이얼로그를 띄운다. 아래 코드가 실행되는 것이다. 그림 3Dialog..

API 2008.07.31

TLS (Thread Local Storage) 란 무엇인가?

TLS (Thread Local Storage) 란 무엇인가? 프로그래밍(삽질) 2006/01/09 09:12 http://blog.naver.com/process3/20020554547 이 포스트를 보낸곳 () 오늘은 앞으로 Dual(MultiCore) Core 프로그램이 더욱 중요해 질 것이다. 그래서 Thread 프로그램 중에서 기본적인 개념이 TLS(Thread Local Storage)에 대해서 알아 보자^^ Thread Local Storage All threads of a process share its virtual address space. The local variables of a function are unique to each thread that runs the function...

API 2008.07.30

파일 사이즈 64비트로 구하는 함수

// 에러시 0xFFFFFFFFFFFFFFFF 리턴 unsigned __int64 GetBigSize(HANDLE hFile) { if(hFile==0) return 0xFFFFFFFFFFFFFFFF; // 기본적 에러검사 DWORD dwSizeHigh, dwSizeLow; dwSizeLow=GetFileSize(hFile, &dwSizeHigh); // 1. GetFileSize 함수가 실패할 경우 if(dwSizeLow == 0xFFFFFFFF && GetLastError() != NO_ERROR) return 0xFFFFFFFFFFFFFFFF; // 2. 하이사이즈가 존재할 경우 if(dwSizeHigh) return ((unsigned __int64)dwSizeHigh

API 2008.07.26