VS之版本-获取编译时间-用于自动生成版本号

我们写软件的,总希望程序有变动时可以自动生成版本号,不用手动去改,这样多方便啊。VS编译器就可实现这个功能。如下所示:




[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /* 
  2. 获取程序编译时间, 用于自动生成版本号很好 
  3.  __DATE__ "Mar 25 2013" 
  4.           "Mar  1 2013" 
  5.  
  6. __TIME__  "21:42:20" 
  7.  
  8.  
  9. */  
  10. void  GetProgramCompileTime(SYSTEMTIME &st)  
  11. {  
  12.       
  13.     TCHAR szDate[20];     
  14.     ZeroMemory(szDate, sizeof(szDate));  
  15.     ZeroMemory(&st, sizeof(SYSTEMTIME));  
  16.     _stprintf(szDate, TEXT("%s"), __DATE__);  
  17.       
  18.     st.wYear = _tcstoul(szDate+7, 0, 10);  
  19.       
  20.     st.wDay = szDate[5] - TEXT('0');  
  21.     if (szDate[4] != TEXT(' '))  
  22.     {  
  23.         st.wDay += (szDate[4] - TEXT('0')) * 10;  
  24.     }  
  25.       
  26.     switch(szDate[0])  
  27.     {  
  28.         case TEXT('A'):  
  29.             if (szDate[1] == TEXT('p'))  
  30.             {  
  31.                 st.wMonth = 4;  
  32.             }  
  33.             else  
  34.             {  
  35.                 st.wMonth = 8;  
  36.             }  
  37.             break;  
  38.               
  39.         case TEXT('D'):  
  40.             st.wMonth = 12;  
  41.             break;  
  42.               
  43.         case TEXT('F'):  
  44.             st.wMonth = 2;  
  45.             break;  
  46.               
  47.         case TEXT('J'):  
  48.             if (szDate[1] == TEXT('a'))  
  49.             {  
  50.                 st.wMonth = 1;  
  51.             }  
  52.             else  
  53.             {  
  54.                 if (szDate[2] == TEXT('n'))  
  55.                 {  
  56.                     st.wMonth = 6;  
  57.                 }  
  58.                 else  
  59.                 {  
  60.                     st.wMonth = 7;  
  61.                 }  
  62.             }  
  63.             break;  
  64.               
  65.         case TEXT('M'):  
  66.             if (szDate[2] == TEXT('r'))  
  67.             {  
  68.                 st.wMonth = 3;  
  69.             }  
  70.             else  
  71.             {  
  72.                 st.wMonth = 5;  
  73.             }  
  74.             break;  
  75.               
  76.         case TEXT('N'):  
  77.             st.wMonth = 11;  
  78.             break;  
  79.               
  80.         case TEXT('O'):  
  81.             st.wMonth = 10;  
  82.             break;  
  83.               
  84.         case TEXT('S'):  
  85.             st.wMonth = 9;  
  86.             break;  
  87.     }  
  88.       
  89.     ZeroMemory(szDate, sizeof(szDate));  
  90.     sprintf(szDate, TEXT("%s"), __TIME__);  
  91.       
  92.     st.wHour = (szDate[0] -TEXT('0')) * 10 + (szDate[1] - TEXT('0'));     
  93.     st.wMinute  = (szDate[3] -TEXT('0')) * 10 + (szDate[4] - TEXT('0'));  
  94.     st.wSecond  = (szDate[6] -TEXT('0')) * 10 + (szDate[7] - TEXT('0'));  
  95.     return;  
  96. }  

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. GetProgramCompileTime 这个函数把编译时间获取出来,保存到一个SYSTEMTIME的结构体里,这样就可以随便用啦。  

感谢http://blog.csdn.net/haart/article/details/51669197


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值