GetFileVersionInfoSize()
-
Hallöchen!
Ich versuche von DLLs und Exen die Versionsnummern auszulesen. Bei den DLLs funktioniert zwar alles, aber bei den Exen bekomme ich immer null zurück und kann dem entsprechend die Versionsnummer nicht auslesen.
Warum?
Mein Sourcecode:
char *ptrBuffer = NULL;
UINT DataSize;
VS_FIXEDFILEINFO *FileInfo;
DWORD dwSize;
DWORD dwHandle;
CString Version;
HINSTANCE hinstLib;hinstLib = LoadLibrary((LPCTSTR)cFileName);
dwSize = GetFileVersionInfoSize(cFileName, &dwHandle);
if(dwSize > 0)
{
ptrBuffer = new char[dwSize];
if(GetFileVersionInfo(cFileName, 0, dwSize, ptrBuffer))
{
VerQueryValue(ptrBuffer, "\",(void **) &FileInfo, &DataSize);
Version.Format("%d.%d.%d.%d",
HIWORD((*FileInfo).dwFileVersionMS),
LOWORD((*FileInfo).dwFileVersionMS),
HIWORD((*FileInfo).dwFileVersionLS),
LOWORD((*FileInfo).dwFileVersionLS));
}
delete [] ptrBuffer;
}
return Version;
if (hinstLib != NULL)
FreeLibrary(hinstLib);
-
- Du verwendest keine Code-Tags
- Der Aufruf von LoadLibrary ist überflüssig
- Der Aufruf FreeLibrary ist unerreichbar und wird niemals ausgeführt
, aber bei den Exen bekomme ich immer null zurück
An welcher Stelle? Was sagt GetLastError?
-
OK!
LoadLibrary() war wirklich überflüssig.Ich bekomme bei GetFileVersionInfoSize() null zurück.
GetLastError() sagt folgendes:1812 The specified image file did not contain a resource section.
Und nun?
-
dann wird das vielleicht auch so sein. zeigt der explorer denn unten in der statusleiste die versionsinformationen an, wenn du auf die datei klickst?