begin process at 2012 05 29 03:42:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

GetFileVersionInfoSize, probleme de link


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

GetFileVersionInfoSize, probleme de link

lundi 16 février 2004 à 10:54:48 | GetFileVersionInfoSize, probleme de link

gege1024

en utilisant : GetFileVersionInfoSize
j'ai un probleme de lien, et je ne sais pas d'ou ca vient (# include ???)

DWORD info;
DWORD toto;
info = GetFileVersionInfoSize ("O:\\vegetation\\Traitement_fichier.exe",&toto);


l'erreur est:
setupDlg.obj : error LNK2001: unresolved external symbol _GetFileVersionInfoSizeA@8
Debug/setup.exe : fatal error LNK1120: 1 unresolved externals

merci pour votre aide.


lundi 16 février 2004 à 11:08:02 | Re : GetFileVersionInfoSize, probleme de link

vecchio56

Administrateur CodeS-SourceS
un problème de lien ne vient jamais d'un include manquant (pour une fonction win32 en tout cas), je crois que tu dois utiliser la librairie version.lib
Ecris ca au début de ton programme
#pragma comment(lib, "Version.lib")
et ca devrait marcher
lundi 16 février 2004 à 11:55:07 | Re : GetFileVersionInfoSize, probleme de link

gege1024

ok, ca marche, mais j'aurais jamais trouvé tout seul.
(pourtant cette librairie est declaré dans les settings)

comment on peut savoir ca tout seul ?????
lundi 16 février 2004 à 12:18:25 | Re : GetFileVersionInfoSize, probleme de link

vecchio56

Administrateur CodeS-SourceS
tu peux trouver ca en allant sur le site de msdn ou toutes les fonction de windows sont décrites, notamment le header et la libraire à utiliser en base de page.Pour cette fonction:

http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Resources/VersionInformation/VersionInformationReference/VersionInformationFunctions/GetFileVersionInfoSize.asp


Function Information

Header Declared in Winver.h, include Windows.h
Import library Version.lib
Minimum operating systems Windows 95, Windows NT 3.1
Unicode Implemented as Unicode and ANSI versions on Windows NT, Windows 2000, Windows XP
lundi 16 février 2004 à 13:07:50 | Re : GetFileVersionInfoSize, probleme de link

gege1024

HANDLE hfl = CreateFile("O:\\vegetation\\Traitement_fichier.exe",GENERIC_READ,FILE_SHARE_READ,NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);

if(hfl == INVALID_HANDLE_VALUE) return;
taille = GetFileSize(hfl, 0);

DWORD info;
DWORD toto;
info = GetFileVersionInfoSize("O:\\vegetation\\Traitement_fichier.exe",&toto);

LPVOID version;
GetFileVersionInfo(file,NULL,info,&version);
CloseHandle(hfl);


// lorsque je fais GetFileVersionInfo, mes variables (taille,et info) sont modifiés, pas normal ca.

et puis je ne recupere pas les infos (version)
HELP ME





LPVOID version;

GetFileVersionInfo("O:\\vegetation\\Traitement_fichier.exe",NULL, info,&version);

mais

lundi 16 février 2004 à 14:37:39 | Re : GetFileVersionInfoSize, probleme de link

vecchio56

Administrateur CodeS-SourceS
1)si taille est modifée par l'appel de GetFileVersionInfo, c'est sur qu'il y a un petit pb, tu as tu te tromper, car taille n'a rien a voir avec ca.
2)est-tu sur que Traitement_fichier.exe contienne des information de version
lundi 16 février 2004 à 16:49:34 | Re : GetFileVersionInfoSize, probleme de link

gege1024

j'ai trouvé ce code ecris en c que j'ai un peu modifié en c++(pas tout)
cependant je ne comprends pas le formatage ecris avec sprintf, ni la structure declaré TRANARRAY....
ce code marche nikel mais je ne comprends pas tout
une petite explication peut etre????


char* sFilename;
sFilename = "O:\\vegetation\\Traitement_fichier.exe";
DWORD dwHandle;
DWORD nBufferSize;
LPVOID pBuffer;
LPTSTR pInfo;
UINT nInfoSize;

struct TRANSARRAY
{
WORD wLanguageID;
WORD wCharacterSet;
};

TRANSARRAY *lpTransArray;
char sCharset[8];
char sQueryString[255];

nBufferSize = GetFileVersionInfoSize(sFilename,&dwHandle);
if (nBufferSize > 0)
{
pBuffer = new char[nBufferSize];
if (pBuffer != NULL)
{
if (GetFileVersionInfo(sFilename, dwHandle, nBufferSize,pBuffer))
{

VerQueryValu(pBuffer,"\\VarFileInfo\\Translation", (LPVOID*)&pInfo,&nInfoSize);
lpTransArray = (TRANSARRAY *) pInfo;
sprintf(sCharset,"%04x%04x", lpTransArray[0].wLanguageID,lpTransArray[0].wCharacterSet);



strcpy(sQueryString, "\\StringFileInfo\\");
strcat(sQueryString, sCharset);
strcat(sQueryString, "\\FileVersion");
VerQueryValue(pBuffer, sQueryString, (LPVOID*) &pInfo,&nInfoSize);

delete (pBuffer);
}
}
}

lundi 16 février 2004 à 18:54:51 | Re : GetFileVersionInfoSize, probleme de link

vecchio56

Administrateur CodeS-SourceS
sprintf: c'est comme printf (ca tu dois connaitre), mais le résultat est mis dans la chaine de caractères passée en 1er arg à la fonction
pour le reste, tu devrais aller voir ce que MSDN te dit sur VerQueryValue
lundi 16 février 2004 à 19:40:29 | Re : GetFileVersionInfoSize, probleme de link

gege1024


OK, mais c'est : ,"%04x%04x que je ne comprends pas
lundi 16 février 2004 à 20:15:15 | Re : GetFileVersionInfoSize, probleme de link

vecchio56

Administrateur CodeS-SourceS
j'imagine que c'est pour imprimer en hexadécimal sur 4 caractères


Cette discussion est classée dans : probleme, info, dword, link, getfileversioninfosize


Répondre à ce message

Sujets en rapport avec ce message

probleme de compilation !! [ par Darkneon ] Voila, j'ai passe de Borland C++ a VC++ et j'ai un petit(?) probleme.Lorsque je veux cree un .exe, ca me dit:Linking...LINK : fatal error LNK1104: can probleme de link [ par lysane ] J'ai crée un projet sans IHM, à l'execution j'ai donc une console dos qui se crée par defaultj'ai voullu la transformer en fenetre pour celà le main e probleme link de dll [ par ToasTy62 ] c encore moi... :oPj'ai un enorme probleme ac une dll ke je fais ac devc++...j'arrive a creer la dll, aucun probleme, j'arrive a l'utiliser ac VB, auc probleme au link avec VC++ [ par marc hash ] salut a tous,j'ai un probleme a la compilation d'un de mes programmes sur Visual C++ 6.mon programme est lié a une base de donnée réalisée a l'aide de Probleme avec une variable de type DWORD [ par kgadhi ] Bonjour tout le monde,J'aimerais savoir comment on fait pour ecrire une variable de type DWORD dans un fichier,DWORD tmp = 0;....FILE *file = NULL;if probleme de link avec GLU 1.3 [ par malibu3D ] Bonjour, j'ai compilé et installé la derniere version de GLU sur mon PC mais depuis,  je n'arrive plus à linker mes projets VC7 utilisant des méthode Probleme de debug avec dev-cpp [ par xcxl ] Bonjour, hier jai voulu debuger mon prg (premiere fois) mais apres avoir cliker sur debug, il me propose de generer les info de debuggage, jaccepte , probleme au link [ par wismerhill__ ] Bonjour tout le monde, je désire builder un projet, qui lui même englobe trois "solutions" (trois autres projets)Mais j'ai ces erreurs au link : wis : probleme link lib [ par unionx ] salut j'essai de creer ma library(.lib), le probleme c'est quand je veux utilise ma .lib sous vc 6 ou vc 2008 ça marche pas. vc 6 me donne ce proble probleme link library [ par unionx ] salut j'essai de creer ma library(.lib), le probleme c'est quand je veux utilise ma .lib sous vc 6 ou vc 2008 ça marche pas. vc 6 me donne ce proble


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 11,060 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales