// 에러시 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<<32)+(unsigned __int64)dwSizeLow;
// 3. 하이사이즈가 존재하지 않는 경우
return (unsigned __int64)dwSizeLow;
}
'API' 카테고리의 다른 글
DLL 에 대해서 알아보자. (0) | 2008.08.04 |
---|---|
재진입성(reentrant)와 스레드 안전성(thread safe)의 개념 (0) | 2008.08.01 |
reentrant와 thread-safe함수와의 관계... (3) | 2008.08.01 |
SendMessage vs PostMessage, 기타 프로시저 재진입 (1) | 2008.07.31 |
윈도우 프로시저 - API (1) | 2008.07.31 |
어떻게 윈도우 프로시져는 재진입 되는가? (1) | 2008.07.31 |
TLS (Thread Local Storage) 란 무엇인가? (0) | 2008.07.30 |