Bonjour
J'utilisais jusqu'à présent cette fonction pour récupérer le numéro de version de mon programme sans problème.
Depuis Berlin 10.1 et l'update 1 il me déclenche une exception dans le programme .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 function ApplicationVersion: String; // récupérer la version mise dans Delphi var VerInfoSize, VerValueSize, Dummy: DWord; VerInfo: Pointer; VerValue: PVSFixedFileInfo; begin VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy); { Deux solutions : } if VerInfoSize <> 0 then { - Les info de version sont inclues } begin { On alloue de la mémoire pour un pointeur sur les info de version : } GetMem(VerInfo, VerInfoSize); { On récupère ces informations : } GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo); VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize); { On traite les informations ainsi récupérées : } with VerValue^ do begin result := IntToStr(dwFileVersionMS shr 16); result := result + '.' + IntToStr(dwFileVersionMS and $FFFF); result := result + '.' + IntToStr(dwFileVersionLS shr 16); result := result + '.' + IntToStr(dwFileVersionLS and $FFFF); end; { On libère la place précédemment allouée : } FreeMem(VerInfo, VerInfoSize); end else { - Les infos de version ne sont pas inclues } { On déclenche une exception dans le programme : } raise EAccessViolation.Create ('Les informations de version de sont pas inclues'); end;
J'ai vérifié dans les options du projet, j'ai bien la coche sur Inclure les info de version
Quelqu'un a t'il une idée ?
Ou bien y a t'il une new façon de faire?
Merci de vos réponses
Partager