假设有两个exe文件(1.exe、2.exe),分别取出了两个文件的版本号。如何比较两个版本号哪一个大?哪一个小?

解决方案 »

  1.   

    版本号格式:
      V1.V2.V3.V4
    每个部分进行比较就可以了得到版本号的过程:
    procedure GetBuildInfo(var V1, V2, V3, V4: Word);
    var
      VerInfoSize: DWORD;
      VerInfo: Pointer;
      VerValueSize: DWORD;
      VerValue: PVSFixedFileInfo;
      Dummy: DWORD;
    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);
    end;
      

  2.   

    wenxiaozhang是对的。另外,有些exe可能没有版本信息。一般版本信息可以指定进行写入的。
      

  3.   

    我知道wenxiaozhang 是对的,但是那个过程是得到版本号,但是如何进行比对呢? 我是为自己用,所以的exe肯定都有版本