관리 메뉴

드럼치는 프로그래머

[C/C++] Linux C - WinCE에서 time()함수 사용하기 본문

★─Programing/☆─C | C++

[C/C++] Linux C - WinCE에서 time()함수 사용하기

드럼치는한동이 2013. 6. 3. 17:20

WinCE환경에서는 time()함수가 없어서(동작하지 않아서, 컴파일되지 않아서..) 자료를 찾다가 보니까.. 다음과 같은 사이트에서 잘 설명하고 있다(WinCE time()).

 

그 내용을 보면 다음과 같다.

 

#ifdef _WIN32_WCE  
#include <winbase.h>
// time.h 를 include 해도 Windows CE에서는 time 함수가 작동하지 않는다.  
// 별도로 구현한다.  
time_t time(time_t *inTT)  
{  
    SYSTEMTIME sysTimeStruct;  
    FILETIME fTime;  
    ULARGE_INTEGER int64time;  
    time_t locTT = 0;  
 
    if ( inTT == NULL )  
    {  
         inTT = &locTT;  
    }  
 
    GetSystemTime( &sysTimeStruct );  
 
    if ( SystemTimeToFileTime( &sysTimeStruct, &fTime ) )  
    {  
         memcpy( &int64time, &fTime, sizeof( FILETIME ) );  
         /* Subtract the value for 1970-01-01 00:00 (UTC) */ 
         int64time.QuadPart -= 0x19db1ded53e8000;  
         /* Convert to seconds. */ 
         int64time.QuadPart /= 10000000;  
         *inTT = (time_t)int64time.QuadPart;  
    }  
    return *inTT;  
}  
#endif  // _WIN32_WCE

 

이렇게 하면 컴파일된다.

Comments