<Windows> C/C++获取编译时间

32 篇文章 0 订阅
24 篇文章 0 订阅

通过对文件编译时间的获得, 可以用来定义App发布时的版本.
以下是C++, MFC的示例:

CString g_strToolDate;
CString g_strCopyRight;
void SetCompileDateTime()
{
    const char *szEnglishMonth[12]= {
        "Jan","Feb","Mar","Apr","May","Jun",
        "Jul","Aug","Sep","Oct","Nov","Dec",
    };
    char szTmpDate[100]={0}; 
    char szTmpTime[100]={0}; 
    char szMonth[10]={0}; 
    wchar_t szDateTime[250] = {0};
    int iYear, iMonth, iDay;
    int iHour,iMin,iSec;

    //获取编译日期、时间 
    sprintf_s(szTmpDate,"%s", __DATE__); //"Sep 18 2010" 
    sprintf_s(szTmpTime,"%s", __TIME__); //"10:59:19" 

    memcpy(szMonth, szTmpDate, 3);
    for (int i=0; i < 12; i++) 
    { 
        if (strncmp(szMonth, szEnglishMonth[i],3) == 0) 
        { 
            iMonth=i+1; 
            break; 
        } 
    } 
    memset(szMonth, 0, 10);
    memcpy(szMonth, szTmpDate+4, 2);
    iDay = atoi(szMonth);

    memset(szMonth, 0, 10);
    memcpy(szMonth, szTmpDate+7, 4);
    iYear = atoi(szMonth);


    memset(szMonth, 0, 10);
    memcpy(szMonth, szTmpTime, 2);
    iHour = atoi(szMonth);

    memset(szMonth, 0, 10);
    memcpy(szMonth, szTmpTime+3, 2);
    iMin = atoi(szMonth);


    memset(szMonth, 0, 10);
    memcpy(szMonth, szTmpTime+6, 2);
    iSec = atoi(szMonth);


    wsprintf(szDateTime,TEXT("App Build@%4d-%02d-%02d_%02d:%02d:%02d"),
        iYear,iMonth,iDay,iHour,iMin,iSec); 

    TRACE(TEXT("%s"), szDateTime);
    TRACE("\n");
    g_strToolDate = szDateTime;


    sprintf_s(szTmpDate, "Lulixue Copyright(C) %d", iYear);
    g_strCopyRight = szTmpDate;
}

在About窗口提示:

About

Linux下获取也差不多.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值