005
16.12.2005, 10:46 Uhr
RHBaum
|
Gibt direkt WINAPI funktionen fuer ... die komische interne Versions-Nummer iss auch total win32 spezifisch ^^
Ich such mal ....
C++: |
DWORD dwx = 0; DWORD dwSize = GetFileVersionInfoSizeA(strFile,&dwx); if(dwSize) { char * buffer = new char[dwSize]; GetFileVersionInfo(strFile,0,dwSize,buffer); // nun hier die info raus generieren .... UINT len = 0; LPVOID lpvi; BOOL bret = ::VerQueryValueA(buffer,"\\VarFileInfo\\Translation",&lpvi,&len); if(bret != FALSE) { // WORD langID = * reinterpret_cast<WORD *>(lpvi); WORD charSet = * (reinterpret_cast<WORD *>(lpvi) +1 ); char query[1024]; _snprintf(query,1024,"\\StringFileInfo\\%04x%04x\\FileVersion",langID,charSet); // haben query String, nu file info abragen .... LPTSTR pVal; bret = VerQueryValue(buffer,query,reinterpret_cast<LPVOID*>(&pVal), &len); if (bret != FALSE) { // wir haben die VersionsNummer nu ..... // nu nur noch convertieren ! lreturn = convertfromString(pVal); } delete buffer; }
|
Funktioniert mit DLLs zumidnest ... iss nur nen Stueck code , da wo ichs mal verwende
GetFileVersionInfoSizeA GetFileVersionInfo VerQueryValue/VerQueryValueA stehen in <winver.h> brauchst aber version.lib dazu, weiss nicht, ob es fuer den gcc ne entsprechende libversion.a gibt .....
Ciao ... Dieser Post wurde am 16.12.2005 um 10:51 Uhr von RHBaum editiert. |