VC++

PocketPCなどにUnix系のプログラムを移植する時にtime()関数がサポートされていない ため,独自に実装する必要がある

下記はその一例である.

// Kazuchi's R&D (C) 2004 Copyright
// time_t timeCE(time_t *p)
// 2004 kazuchi
time_t time_tCE(time_t *p) 
{
 SYSTEMTIME   nowtime;
 FILETIME	     nowfiletime;
 SYSTEMTIME	epoctime;
 FILETIME	epocfiletime;

 GetSystemTime(&nowtime);
 SystemTimeToFileTime(&nowtime,&nowfiletime);
	
 //Get UNIX Epoc time
 epoctime.wYear	=	1970;
 epoctime.wMonth	=	1;
 epoctime.wDay	=	1;
 epoctime.wHour	=	0;
 epoctime.wMinute=	0;
 epoctime.wSecond=	0;
 epoctime.wMilliseconds = 0;
 epoctime.wDayOfWeek = 0;
 SystemTimeToFileTime(&epoctime,&epocfiletime);

 UINT64		time_now,time_epoc,result;
 time_now= nowfiletime.dwHighDateTime;
 time_now=time_now<<32;
 time_now+=nowfiletime.dwLowDateTime;

 time_epoc= epocfiletime.dwHighDateTime;
 time_epoc=time_epoc<<32;
 time_epoc+=epocfiletime.dwLowDateTime;

 result=(time_now-time_epoc);
 result=result/1000/1000/1000*100; //resolution 1:100nsec

 if(p!=NULL)
    *p=(time_t)result;
  
 return (time_t)result;

}

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: Tue, 21 Sep 2010 13:11:47 JST (3008d)