请问delphi编译的exe文件的文件名可否自动带上版本号? 有这种可能没?这样我就知道我的程序是否是最新版了。或者哪位高人指教一下怎么搞好版本控制?我的程序用在好几个地方,经常弄不清是不是都更新为最新版了,所以这里请教一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 项目选项那里有相关设置.Project->Option Project->Option...->Version Info->Include version information in project 打上勾。然后修改 Module version number LZ 还可以修改companyname 文件版本。 公司名称等。 按照楼上的各位所说的设置然后使用Cnpack,可以每次编译自动修改版本号 cnpack很强……Project->Option...->Version Info->Include version information in project 各位说的version info我还是知道的,但我是想在编译的exe文件名后自动跟上此次编译后的版本号,例如我的文件是Project1.exe,我希望第一次编译后delphi可以自动给我增加为Project11.0.0.1.exe,第二次为Project11.0.0.2.exe。我想这么说,大家应该明白我的问题了吧?另外那个cnpack可以实现这个功能吗?如果可以还请指教具体方法,谢谢! 使用编译工具吧,如 FinalBuilder,编译、取版本号、加密、改名、用RAR压缩、FTP上传...你想怎么都行。 楼上都是一堆半懂不懂的人,我来详细解释一下版本号的使用。Project->Option...->Version Info->Include version information in project 打上勾还需要在increse verion per-build上面打钩然后你每次build 注意一定是BUILD不是complie软件就会自动升一个版本号,对exe文件点右键,就能在属性中看到版本号。但是实际我们应用中是希望版本号出现在程序的标题栏里面或者是关于里面,谁老去看属性呢。用下面的的函数取得当前程序的版本号。function GetBuildInfo: string; {********************************** 功能:取得程序版本号 更新时间:20031111 ***********************************} var VerInfoSize: DWORD; VerInfo: Pointer; VerValueSize: DWORD; VerValue: PVSFixedFileInfo; Dummy: DWORD; V1: word; V2: word; V3: word; V4: word; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); GetMem(VerInfo, VerInfoSize); GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); with VerValue^ do begin V1 := dwFileVersionMS shr 16; V2 := dwFileVersionMS and $FFFF; V3 := dwFileVersionLS shr 16; V4 := dwFileVersionLS and $FFFF; end; FreeMem(VerInfo, VerInfoSize); Result := IntToStr(V1) + '.' + IntToStr(V2) + '.' + IntToStr(V3) + '.' + IntToStr(V4); end; GetFileVersionInfoSize之后记得判断一下返回值VerInfoSize是否为0,否则后面的操作是无法操作的。我现在的做法是在主菜单上面直接显示版本号,这样子用户就能够很方便地看到版本号。其中GetVersion的代码跟14楼差不太多。只是默认返回值为0.0.0.0,并对GetFileVersionInfoSize的返回值做了判断。做法是:procedure TfrmAdapterMain.FormCreate(Sender: TObject);begin nmAbout.Caption := nmAbout.Caption +' V'+GetVersion;... delphi鼠标拖动所画直线 关于GROUP BY的问题,急急急! 关于打包后的数据库路径问题。 急!!!!InstallShield出问题了。 有没有架过“医保中心服务器”服务器的朋友,请您进来UP一下 兄弟们说说‘电力’的单词怎么写 !!马上就给分 请问手机软件到底是如何开发的? 这也是C/S结构吗:ACCESS在服务器中完全共享,客户机与其连接? 单机版的 还原精灵 它的密码 一般 放在 什么地方呀 为什么我的笔记本装不上winnt4.0 一个封装mysql的sdk 支持最新mysql版本 yacc主要原理是什么
然后修改 Module version number
LZ 还可以修改companyname 文件版本。 公司名称等。
然后使用Cnpack,可以每次编译自动修改版本号
Project->Option...->Version Info->Include version information in project
我来详细解释一下版本号的使用。
Project->Option...->Version Info->Include version information in project 打上勾还需要在increse verion per-build上面打钩然后你每次build 注意一定是BUILD不是complie软件就会自动升一个版本号,对exe文件点右键,就能在属性中看到版本号。
但是实际我们应用中是希望版本号出现在程序的标题栏里面或者是关于里面,谁老去看属性呢。
用下面的的函数取得当前程序的版本号。function GetBuildInfo: string;
{**********************************
功能:取得程序版本号
更新时间:20031111
***********************************}
var
VerInfoSize: DWORD;
VerInfo: Pointer;
VerValueSize: DWORD;
VerValue: PVSFixedFileInfo;
Dummy: DWORD;
V1: word;
V2: word;
V3: word;
V4: word;
begin
VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
GetMem(VerInfo, VerInfoSize);
GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
with VerValue^ do
begin
V1 := dwFileVersionMS shr 16;
V2 := dwFileVersionMS and $FFFF;
V3 := dwFileVersionLS shr 16;
V4 := dwFileVersionLS and $FFFF;
end;
FreeMem(VerInfo, VerInfoSize);
Result := IntToStr(V1) + '.' + IntToStr(V2) + '.' + IntToStr(V3) + '.' + IntToStr(V4);
end;
procedure TfrmAdapterMain.FormCreate(Sender: TObject);
begin
nmAbout.Caption := nmAbout.Caption +' V'+GetVersion;
...