获取应用程序的版本信息
Delphi或者Lazarus(FPC),编译环境有一个自动增加版本信息的功能,应用程序在运行时显示往往是调用windows API,整合成标准函数格式如下。
function GetApplicationVersion: String; // Added 取得程序版本号 var FileName : String; InfoSize, Wnd: DWORD; VerBuf : Pointer; VerInfo : ^VS_FIXEDFILEINFO; begin Result := '0.0.0.0'; FileName := Application.ExeName; InfoSize := GetFileVersionInfoSize(PChar(FileName), Wnd); if InfoSize <> 0 then begin GetMem(VerBuf, InfoSize); try if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then begin VerInfo := nil; VerQueryValue(VerBuf, '\', Pointer(VerInfo), Wnd); if VerInfo <> nil then Result := Format('V%d.%d.%d.%d', [VerInfo^.dwFileVersionMS shr 16, VerInfo^.dwFileVersionMS and $0000FFFF, VerInfo^.dwFileVersionLS shr 16, VerInfo^.dwFileVersionLS and $0000FFFF]); end; finally FreeMem(VerBuf, InfoSize); end; end; end;
其实mORMot里面已经了对应的实现。mORMot 1.8 在 SynCommons,跨平台!
调用方法简单直接:
TFileVersion.GetVersionInfo(Application.ExeName);
分类:
Pascal Lazarus
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2016-12-30 用 Lazarus 开发 OPC Client 2 (关于Lazarus 编译器)