zoukankan      html  css  js  c++  java
  • 获取应用程序的版本信息

    Delphi或者Lazarus(FPC),编译环境有一个自动增加版本信息的功能,应用程序在运行时显示往往是调用windows API,整合成标准函数格式如下。

    imageimage


    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,跨平台!

    image

    调用方法简单直接:

       TFileVersion.GetVersionInfo(Application.ExeName);

  • 相关阅读:
    生命周期-BeanPostProcessor-后置处理器
    生命周期-@PostConstruct&@PreDestroy
    生命周期-InitializingBean和DisposableBean
    异常安全
    inline函数
    bool类型
    函数重载与默认参数
    C++强制转换
    引用
    new/delete表达式
  • 原文地址:https://www.cnblogs.com/hieroly/p/15748221.html
Copyright © 2011-2022 走看看