Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
611 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] Version Resource

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] Version Resource

n°139848
godbout
Génial.
Posté le 16-05-2002 à 14:35:09  profilanswer
 

Comment je peux recuperer la resource VERSION :??:
 
J'arrive a recuperer des strings, des bitmaps, des icones, mais pas la version.
 
J'ai essaye avec GetFileVersionInfo (InfoSize, et VerQueryValue) mais impossible d'y arriver :sweat:


---------------
Super.
mood
Publicité
Posté le 16-05-2002 à 14:35:09  profilanswer
 

n°139933
godbout
Génial.
Posté le 16-05-2002 à 16:09:33  profilanswer
 

mais quel bide :sol:


---------------
Super.
n°139995
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-05-2002 à 17:41:46  profilanswer
 

Je peux te donner le code en Pascal pour ça, ça doit pas être très différent... (vu que ça passe par les fonctions de l'API Windows)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°140211
godbout
Génial.
Posté le 17-05-2002 à 09:04:27  profilanswer
 

ouais je veux bien thx :)


---------------
Super.
n°140229
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-05-2002 à 09:44:50  profilanswer
 

J'ai ça chez moi, j'ai pas été revoir le topic hier soir (je ne vais voir que les nouveaux topics, j'espérais que tu y postes une réponse entre 18 et 0h), va falloir attendre ce soir :D

 

[jfdsdjhfuetppo]--Message édité par antp le 17-05-2002 à 09:45:00--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°140235
godbout
Génial.
Posté le 17-05-2002 à 09:52:16  profilanswer
 

Pas de prob.
Des que je rentre chez moi je fais un delete de ma memoire programmable donc pas de forum prog :/ :D


---------------
Super.
n°140374
LetoII
Le dormeur doit se réveiller
Posté le 17-05-2002 à 13:07:15  profilanswer
 

Un peu comme antp, je te poste le code C++ pour faire ça ce soir (désolé je suis au boulot et j'ai pas mes codes sur moi :D )


---------------
Le Tyran
n°140392
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-05-2002 à 13:31:58  profilanswer
 

Ha bhen si tu l'as directement en C++ c'est encore plus simple...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°140393
godbout
Génial.
Posté le 17-05-2002 à 13:32:04  profilanswer
 

ouais merci :bounce:


---------------
Super.
n°140597
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-05-2002 à 18:21:01  profilanswer
 

Bon voilà le truc en Pascal, je suppose que tu pourras y récupérer ce dont tu as besoin:
 

Code :
  1. type
  2.   PFixedFileInfo = ^TFixedFileInfo;
  3.   TFixedFileInfo = record
  4.      Signature: DWord;
  5.      StrucVersion: DWord;
  6.      Minor: Word;
  7.      Major: Word;
  8.      Build: Word;
  9.      Release: Word;
  10.      FileFlagsMask: DWord;
  11.      FileFlags: DWord;
  12.      FileOS: DWord;
  13.      FileType: DWord;
  14.      FileSubtype: DWord;
  15.      FileDateMS: DWord;
  16.      FileDateLS: DWord;
  17.   end;
  18. function GetFileInfo(const AFileName: string): TFixedFileInfo;
  19. var
  20.   Handle, VersionSize: DWORD;
  21.   SubBlock: string;
  22.   Temp: Pointer;
  23.   Data: Pointer;
  24.   ErrMsg: PChar;
  25. begin
  26.   SubBlock := '\';
  27.   VersionSize := GetFileVersionInfoSize(PChar(AFileName), Handle);
  28.   if VersionSize > 0 then
  29.   begin
  30.     GetMem(Temp, VersionSize);
  31.     try
  32.       if GetFileVersionInfo(PChar(AFileName), Handle, VersionSize, Temp) then
  33.         if VerQueryValue(Temp, PChar(SubBlock), Data, VersionSize) then
  34.           Result := PFixedFileInfo(Data)^;
  35.     finally
  36.       FreeMem(Temp);
  37.     end;
  38.   end else
  39.   begin
  40.     if FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM,
  41.                       nil, GetLastError, 0, @ErrMsg, 0, nil) <> 0 then
  42.       try
  43.         raise Exception.Create(ErrMsg);
  44.       finally
  45.         LocalFree(Cardinal(ErrMsg));
  46.       end;
  47.   end;
  48. end;
  49. function GetBuild(const AFileName: string): string;
  50. begin
  51.   with GetFileInfo(AFileName) do
  52.     Result := Format('%d.%d.%d.%d', [Major, Minor, Release, Build]);
  53. end;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 17-05-2002 à 18:21:01  profilanswer
 

n°140605
LetoII
Le dormeur doit se réveiller
Posté le 17-05-2002 à 18:50:01  profilanswer
 

En c++:
//FileName variables contenant le nom du fichier
unsigned long    t,taille;
unsigned int     size;
VS_FIXEDFILEINFO *pstruct;
 
temp=new char[taille=GetFileVersionInfoSize(FileName ,&t)];
 
GetFileVersionInfo(FileName ,0,taille,temp);
VerQueryValue(temp,"\\",(void**)(&pstruct),&size);
 
short major    = (short)(pstruct->dwFileVersionMS >> 16);      
short minor    = (short)(pstruct->dwFileVersionMS);
short realease = (short)(pstruct->dwFileVersionLS >> 16);
short build    = (short)(pstruct->dwFileVersionLS);
delete[] temp;


---------------
Le Tyran
n°140665
godbout
Génial.
Posté le 17-05-2002 à 22:05:32  profilanswer
 

ok merci a tous les deux :)
 
Je vais sharcuter tout ca mardi :D


---------------
Super.
n°140975
Je@nb
Kindly give dime
Posté le 19-05-2002 à 00:52:29  profilanswer
 

t1 c bien compiqué ça en pascal lol  :lol:  :lol:  :lol:

n°140979
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-05-2002 à 01:02:04  profilanswer
 

:sarcastic: ça fait pas la même chose
La version Pascal a la gestion d'erreur qui renvoie un message d'erreur, et renvoie la version en tant que chaîne formatée...
Et ça serait aussi plus facile s'il fallait pas convertir les chaînes en PChar (tableau de caractère finissant par 0) :D

 

[jfdsdjhfuetppo]--Message édité par antp le 19-05-2002 à 01:03:06--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°141450
godbout
Génial.
Posté le 21-05-2002 à 10:18:10  profilanswer
 

letoII a écrit a écrit :

En c++:
//FileName variables contenant le nom du fichier
unsigned long    t,taille;
unsigned int     size;
VS_FIXEDFILEINFO *pstruct;
 
char *temp=new char[taille=GetFileVersionInfoSize(FileName ,&t)];
 
GetFileVersionInfo(FileName ,0,taille,temp);
VerQueryValue(temp,"\\",(void**)(&pstruct),&size);
 
short major    = (short)(pstruct->dwFileVersionMS >> 16);      
short minor    = (short)(pstruct->dwFileVersionMS);
short realease = (short)(pstruct->dwFileVersionLS >> 16);
short build    = (short)(pstruct->dwFileVersionLS);
delete[] temp;  




 
impeccable [:fifiz]
 
thx a tous les deux :jap:


---------------
Super.
n°245676
ezzz
23
Posté le 15-11-2002 à 00:17:59  profilanswer
 
n°245706
blackgodde​ss
vive le troll !
Posté le 15-11-2002 à 08:07:57  profilanswer
 

en pascal au d'apres de ke g compris il définit la struct alors kelle est ds les header en cpp


---------------
-( BlackGoddess )-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] Version Resource

 

Sujets relatifs
Comment connaitre la version de PERL installée sur un serveur ?php et ifrance version payante=> gère MySQL ?
[PHP] - Comment installer le patch pour la version 4.0.6version de style pour l'impression media="print" ???
HELP pour un script CGI de la version 1.6 vers 1.9 ...Open gl et C++ quelle version ?[Newbie inside]
[XML] Connaitre la version de MSXML utilisée par le visiteur?Version de mon jeu en OpenGL et C++ en download ICI ! (UPDATED !)
[C++ builder 6] y'a quoi sur les 6 CD de la version entreprise ???[Delphi] Afficher la version de windows
Plus de sujets relatifs à : [C++] Version Resource


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR