1. 程式人生 > >Qt程式版本號之rc檔案

Qt程式版本號之rc檔案

釋出出去的win32 應用程式,可以設定版本號,滑鼠右鍵exe檔案,屬性中檢視,像這樣:


那麼問題來了,怎麼做到的?

因為只有win32平臺才有這個東西,所以qt沒有提供相關的介面。只有用其他辦法了。其中比較簡單的辦法就是:

使用.rc檔案給win32平臺的程式增加版本等資訊。 但是,經常會發布出去的除了exe和dll,還有lib,再但是!貌似lib檔案不能有版本資訊。反正我沒找到辦法。
那什麼是.rc檔案? 摘要:開發windows平臺應用程式管理資源的檔案。.rc檔案是管理程式icon、滑鼠圖片、等資源的指令碼,會被編譯和連結到exe或dll檔案。編譯這個rc檔案要使用RC (The RC Command Line),編譯出來是.res檔案
。當然,我們不會自己去編譯它了。 Qt工程中怎麼使用.rc檔案?
在.pro裡指定RC_FILE = .rc檔案的路徑。像這樣。

還有最後一個問題, .rc檔案的語法啥樣的?怎麼寫? 也可以看看版本相關的變數和官方例子:比如FileVersionProductName、ProductVersion等等。

#if defined(UNDER_CE)
#include 
#else
#include 
#endif

VS_VERSION_INFO VERSIONINFO

    FILEVERSION 1,4,1,12
    FILEFLAGSMASK 0x3fL

#ifdef _DEBUG
    FILEFLAGS VS_FF_DEBUG
#else
    FILEFLAGS 0x0L
#endif
    FILEOS VOS__WINDOWS32
    FILETYPE VFT_DLL
    FILESUBTYPE 0x0L
    BEGIN

        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "080404b0"//Simplified Chinese, Unicode
            BEGIN

                VALUE "FileDescription", "MyVersion"
                VALUE "LegalCopyright", "Copyright (C) 2017-2022"
                VALUE "OriginalFilename", ""
                VALUE "ProductName", "My Version"
                VALUE "ProductVersion", "2.4.3.1"

            END
        END

        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x804, 1200 //Simplified Chinese, Unicode
        END
    END


好了,加了myVersion.rc檔案,重新構建編譯工程,就帶版本資訊啦! 還想知道怎麼在程式中獲得版本資訊嗎?另一篇文章再寫吧!