C/C++ API Windows: Version d'un exécutable - Programmation
Marsh Posté le 13-12-2001 à 12:35:40
Y a GetFileVersionInfo et apparentée.
The GetFileVersionInfo function returns version information about a specified file.
As with other file installation functions, GetFileVersionInfo works only with Win32 file images. It does not work with 16-bit Windows file images. Etc......
Mais cela n'est possible (me semble-t-il) que si le développeur/codeur/.. a mis la structure adhoc dans le fichier .RC (c'est ce que je fais dans mes DLL (16 bits)).
Du style
#define VERSIONINFO_1 1
VERSIONINFO_1 VERSIONINFO
FILEVERSION 1, 0, 0, 0
PRODUCTVERSION 1, 0, 0, 0
FILEOS VOS_DOS_WINDOWS16
FILETYPE VFT_APP
{
BLOCK "StringFileInfo"
{
BLOCK "040904E4"
{
VALUE "CompanyName", "Carbon_14\000\000"
VALUE "FileDescription", "Module affichage rapide\000"
VALUE "FileVersion", "1.00\000\000"
VALUE "InternalName", "FORMAFF\000"
VALUE "LegalCopyright", "bidule\000\000"
VALUE "OriginalFilename", "FORMAFF.DLL\000"
}
}
BLOCK "VarFileInfo"
{
VALUE "Translation", 0x409, 1252
}
}
En 32 bits, doit y avoir qq chose d'analogue..
Si c'est la boîte de dialogue machin du menu truc qui affiche : version 3.11, pas évident...
Marsh Posté le 13-12-2001 à 16:11:58
ok merci.
J'avais déjà essayé avec cette fonction mais ça marchait pas trop, je vais mereplonger dans la doc
Marsh Posté le 13-12-2001 à 16:20:46
Pour qu'elle "marche", ou de ses homologues, je pense qu'il faut que le click droit/Propriétés au niveau explorateur de fichiers donne un numéro de version (ou Alt+Entrée en 16 bits) ! Sinon, on peut toujours chercher si c'est codé qq part...
Marsh Posté le 13-12-2001 à 16:36:06
Justement ça ça marche sur mon apli(c fait automatiquement par le compilo) faut donc juste que j'arrive à utiliser correctement la fonction (au fait je confirme y a une version 32 bits )
Marsh Posté le 13-12-2001 à 17:08:27
comment on peux encore coder en 16 bits?
Marsh Posté le 14-12-2001 à 09:51:17
Le 16 bits : par intérêt pratique. J'ai écrit un truc sous DOS l'autre jour pour lire deux ports d'une vieille carte conv Analogique/Digitale pour mettre sur une manip laser. Pas besoin d'un PC moderne pour faire une mesure par seconde !!
Mais je pense qu'il vaut mieux écrire du 32 bits quand on est jeune et qu'on commence, sinon, ça fait historien .
J'ai connu les bandes perforées et les cartes quand j'étais étudiant...
Je fais quand même des efforts de "portage" 32 bits pour les OS modernes .
Marsh Posté le 13-12-2001 à 07:24:05
Y a t il une fonction de l'API windows qui permet de choper le numero de version d'un executable ou bien faut il que j'aille me le chercher moi même en lisant le fichier binairement comme une brute?