給Delphi程序添加版本信息(EXE和Dll)


我們在用Delphi編譯完程序,准備發布產品時,總希望隨產品發布個性信息以標示產品的來源以及開發者等信息,就像windows的程序一樣,使我們一看屬性就知道他是微軟的產品,這些在Delphi中是如何實現的呢?下面我就來給大家演示和說明給exe,dll文件添加版本信息的方法。


第一,給exe文件添加版本信息。


這個我想大家都會添加的,Delphi已經給我們提供了相關選項了. 具體做法:打開你的工程,選擇菜單Project-->Options...--->Version info 選中"Include version infomation in project",然后你就可以添加具體版本信息了,編譯你的工程,看生成的exe文件屬性,發現已經有了你自己的版本信息了。

第二,給dll文件添加版本信息。


如何給自己的dll文件添加版本信息呢?如果按照上面的方法的話你會發現,在"Include version infomation in project"你是不能選擇的,難道我們真的沒辦法嗎?答案是利用資源文件,微軟早已經為我們做好了准備.下面是一個具體的例子。

首先建立一個文件后綴為.rc(以ver.rc為例),用記事本打開,拷貝下面內容:
VS_VERSION_INFO VERSIONINFO //版本信息結構
FILEVERSION 1,0,0,1 //顧名思義文件版本,就是在屬性頁版本上面顯示的|
PRODUCTVERSION 1,0,0,1 //顧名思義產品版本 |這里是主版本信息
FILEFLAGSMASK 0x3fL //這里設為0x3fL就好了 |
#ifdef _DEBUG
FILEFLAGS 0x1L //VS_FF_DEBUG包括debug信息
#else
FILEFLAGS 0x0L //無
#endif
FILEOS 0x4L //對應於delphi中VOS__WINDOWS32,說明程序是win32程序
FILETYPE 0x2L //文件類型,$2是dll,$1是exe
FILESUBTYPE 0x0L //文件子類型,一般設為0即可
BEGIN
BLOCK "StringFileInfo" //這里設置文件其他的版本信息(詳細信息)
BEGIN
BLOCK "080403A8" //所用語言080403A8簡體中文,040904b0英語(美國)
BEGIN
VALUE "Comments", "My Dll Application test" //備注
VALUE "CompanyName", "JJony" //公司名
VALUE "FileDescription", "xxx.dll" //產品描述
VALUE "FileVersion", "1. 0. 0. 1" //文件版本
VALUE "InternalName", "" //內部名稱
VALUE "LegalCopyright", "Copyright (C) 2006.6" //版權信息
VALUE "OriginalFilename", "xxx.dll" //源文件名
VALUE "ProductName", "xxx.dll" //產品名
VALUE "ProductVersion", "1. 0. 0. 1" //產品版本
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x804, 0x03A8 //這里是關鍵哦,決定了是什么語言
END //0x0804, 0x03A8簡體中文
END //0x0409, 0x04b0英語(美國)

你看出了什么沒有,實際上就是填充了delphi中的VS_VERSIONINFO和VS_FIXEDFILEINFO結構,只不過這里面的語言格式是VC的罷了:)

把上面存為.rc文件(以ver.rc為例)。拷貝delphi7binbrcc32.exe到你的程序目錄,再建立ver.bat,輸入:brcc32 ver.rc 保存。雙擊運行ver.bat,生成ver.res,然后在你的dll工程里添加資源{$R ver.res} 重新編譯dll,你會發現dll也有了自己的版本信息了。

 

http://blog.csdn.net/zisongjia/article/details/68927919


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM