IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Lire le numéro de version d'une dll


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lire le numéro de version d'une dll
    Bonjour à tous!

    Je cherche à lire le numéro de version d'une dll (que l'on peut trouver en faisant un clic droit->propriété->Onglet Version) depuis un programme C++.

    J'ai trouvé ceci http://www.codeguru.com/cpp/w-p/dll/article.php/c113/ mais je n'arrive pas à le faire fonctionner sur les dlls que je souhaite vérifier.

    Auriez-vous une solution à me proposer ?

    Cordialement

  2. #2
    Membre averti Avatar de Jenna
    Inscrit en
    Décembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Décembre 2009
    Messages : 272
    Points : 339
    Points
    339
    Par défaut
    Avec GetFileVersionInfo() qui est une fonction de l'API Win32, tu peux récupérer ces informations.
    La valeur n'attend pas le nombre des années

  3. #3
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    J'ai sous le coude un bout de code qui récupère, justement, le numéro de version uniquement...

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #include <windows.h>
    #include <stdio.h>
     
    // Linker la librairie "version.lib" / "version.dll"
    #pragma comment(lib,"version")
     
    int main ( int argc, char* argv[] ) {
     
    	DWORD handle, len ;
    	UINT blen ;
    	LPTSTR data ;
    	VS_FIXEDFILEINFO* fileinfo ;
     
    	if (argc!=2) {
    		printf("Usage : %s <ExecutableFile>\n",argv[0]);
    		printf("Print the internal version of the file.\n");
    		printf("\n");
    		printf("Return values :\n");
    		printf("0\tNo error, version found.\n");
    		printf("1\tBad parameters.\n");
    		printf("2\tNo version info.\n");
    		printf("3\tNot enough memory.\n");
    		printf("4\tCould not read version block.\n");
    		printf("5\tNo version info in version block.\n");
    		printf("If error code >1, NOTHING is printed on console.\n");
    		return 1 ;
    	}
     
    	len = GetFileVersionInfoSize((LPCSTR)argv[1],&handle) ;
    	if (!len)
    		return 2 ;
    	data = (LPTSTR)malloc(len) ;
    	if (!data)
    		return 3 ;
     
    	if (!GetFileVersionInfo(argv[1],handle,len,data)) {
    		free(data) ;
    		return 4 ;
    	}
    	if (VerQueryValue(data,"\\",(LPVOID*)&fileinfo,(PUINT)&blen)) {
    		printf("%d.%d.%d.%d\n",	HIWORD(fileinfo->dwFileVersionMS), LOWORD(fileinfo->dwFileVersionMS),
    								HIWORD(fileinfo->dwFileVersionLS), LOWORD(fileinfo->dwFileVersionLS)) ;
    		free(data) ;
    		return 0 ;
    	}
    	free(data) ;
    	return 5 ;
    }
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

Discussions similaires

  1. Version d'une DLL
    Par phpdev dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/02/2007, 08h08
  2. Version d'une dll
    Par fantomchris dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 11/12/2006, 17h47
  3. Réponses: 2
    Dernier message: 12/09/2006, 17h48
  4. [inno setup/is tool] Version d'une dll.
    Par méphistopheles dans le forum Installation, Déploiement et Sécurité
    Réponses: 6
    Dernier message: 21/02/2006, 22h25
  5. Réponses: 5
    Dernier message: 01/07/2005, 14h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo