송신영 님이 쓰신 글 :
: 저도 실행파일의 컴파일 시간을 가져와서 버전표기에 사용하려고 만든 코드입니다.
: 참고가 되시길...
:
:
: TDateTime __fastcall GetFileWriteTime(AnsiString sFilePath)
: {
: TSearchRec sr;
:
: TDateTime DateTime;
: //TDateTime DateTimeTmp;
:
: if (FindFirst(sFilePath, faAnyFile, sr) == 0) {
: //do {
: if ((sr.Attr & faDirectory) != faDirectory) {
: //DateTimeTmp = sr.TimeStamp;
:
: FILETIME TempTime;
: SYSTEMTIME SystemTime;
:
: FileTimeToLocalFileTime( &sr.FindData.ftLastWriteTime, &TempTime );
: FileTimeToSystemTime( &TempTime, &SystemTime );
:
: DateTime = SystemTimeToDateTime(SystemTime);
:
: }
: //} while(FindNext(sr) == 0);
: }
:
: FindClose(sr);
:
: //Return.
: return DateTime;
: }
:
:
: 뽀뽀중 님이 쓰신 글 :
: : 프로그램에 릴리즈 컴파일을 수행한 날자 시간을 알고 싶습니다.
: : (프로젝트를 컴파일을 수행한 날자 및 시간)
: :
: : 목적은 프로그램 중 가장 최근에 릴리즈 컴파일을 수행한 시간을 자동으로 입력 하려고 합니다.
: : (About 창에 캄파일을 한 날자 시간을 표시 하려 합니다)
: :
: : 어떻게 해야 하나요?
답변:
C/C++ 컴파일러는 컴파일러 자체에서 builtin 매크로로
__DATE__, __TIME__ 를 갖고있기 마련 입니다.
컴파일러는 컴파일시에 시스템 날짜와 시간을 알아내서 저 빌트인 매크로 값을 치환해서 바이너리에 넣게 됩니다.
String buildDateTime = String(__DATE__) + L" : " + String(__TIME__);
C/C++ 랭귀지 기초 인데요...
|