欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法

 更新時(shí)間:2017年03月13日 22:11:06   投稿:mdxy-dxy  
這篇文章主要介紹了VC使用編譯時(shí)間作為版本號(hào)標(biāo)識(shí)的方法,需要的朋友可以參考下

常用方法分兩步:

1. 得到編譯時(shí)間;

2. 設(shè)置基準(zhǔn)時(shí)間,以編譯時(shí)間距基準(zhǔn)時(shí)間的總天數(shù)的2倍作為版本號(hào),適當(dāng)情況還可加上初值;

其中第一步實(shí)現(xiàn)有兩種方法:

1. 直接使用系統(tǒng)宏:CString OcxTime = __DATE__;
2. 在編譯選項(xiàng)的Pre-link Step中調(diào)用批處理文件.bat:

@echo off
echo #pragma once>"Ver.h"
echo #define APP_VER_NUM  "%data%">>"Ver.h"

其它網(wǎng)友的補(bǔ)充

使用宏__DATE__和__TIME__

CString strVersion,strBuildTime; 
strBuildTime = __DATE__; 
strBuildTime.Append(" "); 
strBuildTime.Append(__TIME__); 
COleVariant vtime(strBuildTime); 
vtime.ChangeType(VT_DATE); 
COleDateTime dateTime=vtime; 
SYSTEMTIME systime; 
VariantTimeToSystemTime(dateTime, &systime); 
CTime buildTime(systime); 
strVersion = buildTime.Format(" Builded %Y-%m-%d %H:%M:%S "); 

it一夢(mèng)同學(xué)的補(bǔ)充

一般來說,發(fā)布的正式軟件都會(huì)包含程序的svn版本號(hào)以及軟件的編譯版本和編譯時(shí)間等信息,但是這些東西并不是默認(rèn)就存在的,需要我們進(jìn)行一些步驟的處理。具體做法有幾種,萬變不離其宗的是,利用SVN自帶的指令獲取到版本號(hào)以及當(dāng)前時(shí)間,填充模板當(dāng)中的占位符,最后用替換后的模板覆蓋資源文件即可。這里只講最簡(jiǎn)單的一種:
a. 首先需要給VC程序添加資源文件,假設(shè)程序名為Test,則資源文件為Test.rc
b. 向資源文件中添加新的資源項(xiàng)——version,資源文件用記事本打開,增加了如下代碼:

VS_VERSION_INFO VERSIONINFO
 FILEVERSION 1,0,0,1
 PRODUCTVERSION 1,0,0,1
 FILEFLAGSMASK 0x17L
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
  BLOCK "StringFileInfo"
  BEGIN
    BLOCK "080404b0"
    BEGIN
      VALUE "FileDescription", "Test"
      VALUE "FileVersion", "1, 1, 1, 0"
      VALUE "InternalName", "Test"
      VALUE "LegalCopyright", "Copyright (C) 2015"
      VALUE "OriginalFilename", "Test.exe"
      VALUE "ProductName", "Microsoft"
      VALUE "ProductVersion", "V1.0"
    END
  END
  BLOCK "VarFileInfo"
  BEGIN
    VALUE "Translation", 0x804, 1200
  END
END

c. 接下來創(chuàng)建一個(gè)模板,利用SVN提供的占位符WCREV獲取版本號(hào),WCNOW獲取編譯時(shí)間。模板可以直接復(fù)制Test.rc文件,更名為Test.rc2。修改上述代碼中的ProductVersion的值即可:

VALUE "ProductVersion", "V2.1.1.$WCREV$.(Build$WCNOW$)"

d. 那么何時(shí)進(jìn)行占位符的替換,隨后替換程序的資源文件Test.rc,準(zhǔn)確的將版本號(hào)與編譯時(shí)間編譯進(jìn)程序呢?VS提供了一個(gè)Build Events配置,我們選擇Pre-Build Event,增加一行代碼如下:

SubWCRev $(ProjectDir) $(ProjectDir)\Test.rc2 $(ProjectDir)\Test.rc

代碼的意思是在程序編譯之前,用SVN的腳本工具SubWCRev獲取到工程目錄的SVN號(hào)以及當(dāng)前的編譯時(shí)間,替換rc2文件中的占位符,覆蓋到rc文件中。

相關(guān)文章

  • 舉例理解C語言二維數(shù)組的指針指向問題

    舉例理解C語言二維數(shù)組的指針指向問題

    這篇文章主要介紹了C語言二維數(shù)組的指針指向問題,文中不建議用二級(jí)指針來訪問二維數(shù)組,需要的朋友可以參考下
    2015-12-12
  • C++begin和end運(yùn)算符的返回迭代器的類型如何判斷?

    C++begin和end運(yùn)算符的返回迭代器的類型如何判斷?

    今天小編就為大家分享一篇關(guān)于C++begin和end運(yùn)算符的返回迭代器的類型如何判斷?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Qt 智能指針QScopedPoint用法小結(jié)

    Qt 智能指針QScopedPoint用法小結(jié)

    智能指針是C++11引入的一種指針封裝類型,用于自動(dòng)管理動(dòng)態(tài)分配的內(nèi)存,本文主要介紹了Qt 智能指針QScopedPoint用法小結(jié),感興趣的可以了解一下
    2024-01-01
  • C++淺析缺省參數(shù)的使用

    C++淺析缺省參數(shù)的使用

    所謂缺省參數(shù),顧名思義,就是在聲明函數(shù)的某個(gè)參數(shù)的時(shí)候?yàn)橹付ㄒ粋€(gè)默認(rèn)值,在調(diào)用該函數(shù)的時(shí)候如果采用該默認(rèn)值,你就無須指定該參數(shù)。缺省參數(shù)使用主要規(guī)則:調(diào)用時(shí)你只能從最后一個(gè)參數(shù)開始進(jìn)行省略,換句話說,如果你要省略一個(gè)參數(shù),你必須省略它后面所有的參數(shù)
    2022-05-05
  • C++的數(shù)據(jù)類型你真的了解嗎

    C++的數(shù)據(jù)類型你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C++的數(shù)據(jù)類型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C語言實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲

    C語言實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡(jiǎn)單五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • 淺談c語言中類型隱性轉(zhuǎn)換的坑

    淺談c語言中類型隱性轉(zhuǎn)換的坑

    下面小編就為大家?guī)硪黄獪\談c語言中類型隱性轉(zhuǎn)換的坑。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • Matlab實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示方法

    Matlab實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示方法

    這篇文章主要為大家詳細(xì)介紹了Matlab使用Plot函數(shù)實(shí)現(xiàn)數(shù)據(jù)動(dòng)態(tài)顯示方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 詳解C++中future和promise的使用

    詳解C++中future和promise的使用

    future和promise的作用是在不同線程之間傳遞數(shù)據(jù),這篇文章主要為大家詳細(xì)介紹了C++中future和promise的具體使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-05-05
  • 基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    眾所周知,在調(diào)試、跟蹤和執(zhí)行應(yīng)用程序的過程中,程序的日志能為這些工作提供大量有價(jià)值的運(yùn)行信息。因此,程序的日志對(duì)應(yīng)用程序的運(yùn)行、維護(hù)至關(guān)重要
    2013-05-05

最新評(píng)論