Entwickler-Ecke
Dateizugriff - DLL Version aus Stream
Klabautermann - Mo 27.06.11 16:19
Titel: DLL Version aus Stream
Hallo,
ich habe einige ZIP Dateien, welche DLLs enthalten. Jetzt möchte ich, ohne die DLLs auf der Festplatte abzulegen, herausfinden welche Dateiversion diese DLLs haben.
Wenn ich die Dateien auf der Platte hätte, könnte ich mit einer Kombination aus GetFileVersionInfo und VerQueryValue arbeiten. Da ich aber die Dateien direkt in einen (Memory)Stream entpacken lasse, klappt es so nicht. Habt ihr eine Idee, wie ich an die Informationen komme ohne Temporäre Dateien anlegen zu müssen?
Gruß
Klabautermann
jaenicke - Mo 27.06.11 17:01
AFAIK bietet die Windows API dafür keine Funktionalität. Sonst würde MS selbst das vermutlich auch in Zip-Ordnern nutzen. ;-)
Insofern bleibt dir nur, dass du das PE-Format selbst auseinander nimmst. ;-)
BenBE - Mo 27.06.11 22:00
Wenn ich das grad richtig in Erinnerung habe, waren die Versions-Informationen ein spezieller Resourcen-Typ, den man abfragen konnte. Du könntest also die DLL aus dem Memory-Stream via LoaDLibraryEx als Datenbereich mappen lassen (dabei wird DllMain der DLL nicht ausgeführt) und dann über das erhaltene Handle die Versions-Resource abfragen. Wenn die genannten APIs von Windows ein Module-Handle akzeptieren, könntest Du hier das von LoadLibraryEx gelieferte verwenden. Ansonsten über einen TResourceStream die binäre Versionsinformation extrahieren und parsen. So viel Erleichterung bringt das LoadLibraryEx gegenüber dem Parsen der PE-Header zwar nicht, ABER man hat durch den TResourceStream gleich die korrekte Lokalisation der Versionsresource.
Klabautermann - Mi 29.06.11 12:25
Hallo,
danke für die Antworten. Das war zwar nicht unbedingt das was ich hören wollte, aber wirklich überrascht hat es mich auch nicht ;).
Danke Jungs,
Klabautermann
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!