Einzelnen Beitrag anzeigen

Karsten der Kelte

Registriert seit: 16. Mai 2006
7 Beiträge
 
#5

AW: XE7 File version falsch

  Alt 24. Aug 2015, 11:19
Bei XE8 habe ich das Problem auch.

Nur dass Delphi diese Division nicht macht?

Die vrc-Datei sagt die komplette Build Nr.:

FILEVERSION 1, 7, 5713, 67807
67807 = 18:50:07
0x 1 08DF

FILEVERSION 1, 7, 5713, 2271
EXE-Datei Änderungsdatum: 24.08.2015 00:37
2271 = 00:37:51
0x 08DF

FILEVERSION 1, 7, 5714, 39388
EXE-Datei Änderungsdatum: 24.08.2015 10:56
39388 = 10:56:28
0x 99DC

vrc-Datei: FILEVERSION 1, 7, 5714, 85111
Resource in EXE: FILEVERSION 1,7,5714,19575
EXE-Datei Änderungsdatum: 24.08.2015 23:38
Eigenschaften der EXE: 1.7.57.14.19575
dwFileVersionLS: 0x 1652 4C77
85111 = 23:38:31
85111 = 0x 1 4C77
19575 = 0x 4C77

Offensichtlich wird die Zahl direkt verwendet, ohne Sie vorher um das niederwertigste Bit zu erleichtern. Leider fehlt dann das höherwertigste Bit am Abend (>$FFFF), da die Build-Nr in dwFileVersionLS nur WORD ist.

Oder gibts eine andere Variante die Build-Nr zu ermitteln?

Delphi-Quellcode:
function GetCurrentVersionBuild: DWord;
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
      Result := dwFileVersionLS and $FFFF;
   end;
   FreeMem(VerInfo, VerInfoSize);
end;
Ciao

Karsten

Geändert von Karsten der Kelte (24. Aug 2015 um 11:46 Uhr)
  Mit Zitat antworten Zitat