Eigenschaften .exe Datei auslesen
-
Rechtklick auf eine exe-Datei->Eigenschaften->Reiter "Details"-> Diese Informationen möchte ich auslesen.
-
earthhero schrieb:
Rechtklick auf eine exe-Datei->Eigenschaften->Reiter "Details"-> Diese Informationen möchte ich auslesen.
Dort steht inder Regel aber nichts über den verwendeten Compiler und dessen Version ...
-
Untersuch die Datei mit einem Hex Editor und schreib dir eben deine eigene Funktion.
-
-.- schrieb:
Untersuch die Datei mit einem Hex Editor und schreib dir eben deine eigene Funktion.
Reverse Engineering sollte nicht der erste Ansatz sein. Es gibt vermutlich sehr einfache Lösungen für das Problem des Threaderstellers, wenn er sich nur vernünftig ausdrücken würde. Die bereits gemachten Vorschläge könnten bereits passen, man weiß es nicht.
-
earthhero schrieb:
ich möchte zum Anzeigen der Compilerversion gerne aus den Eigenschaften der .exe-Datei die Version auslesen. Weiß einer ob das so einfach möglich ist?
Nein, die Compilerversion steht nicht in der .exe-Datei. Es gibt ein älteres Programm, dass die Bestimmung des Compilers durch einen Signaturcheck versucht (ähnlich wie ein Virenscanner):
http://www.ntcore.com/pedetective.php
Es gibt eine Vielzahl von Programmen, die die Informationen aus einer PE-Datei herausfiltern und anzeigen, z.B.:
http://wjradburn.com/software/ (dort PEview herunterladen)
Dazu muss man aber die PE-Spezifikation kennen:
http://msdn.microsoft.com/en-us/windows/hardware/gg463119.aspx
Und damit sind wir beim Google-Stichwort: "PE" oder "Portable Executable".
viele grüße
ralph
-
Also, wir haben ein Keilprojekt für ein XC161 Board und wollen in einem makefile die aktuelle Compilerversion eintragen. Also nicht hart reincoden sondern dynamisch. Unsere Idee war halt nun die Informationen aus den Eigenschaften der .exe Datei. Da dort die Version bei uns zu finden ist. Andere Lösungen sind uns aber genauso willkommen.
-
Ihr wollt, dass der Compiler euch seine Version mitteilt? Das sollte im Handbuch stehen. Höchstwahrscheinlich so etwas wie "compileraufruf -v" beim Kommandoaufruf oder "__VERSION__" als Makro zur Compilezeit.
-
SeppJ schrieb:
Ihr wollt, dass der Compiler euch seine Version mitteilt? Das sollte im Handbuch stehen. Höchstwahrscheinlich so etwas wie "compileraufruf -v" beim Kommandoaufruf oder "__VERSION__" als Makro zur Compilezeit.
Besten Dank
-
So nun habe ich die Predefined Macros vom Compiler gefunden:
http://www.keil.com/support/man/docs/c166/c166_pp_predefmacroconst.htmEinfache Nutzung von _C166_ gibt keine Ausgabe
COMVER=__C166__ ist momentan die nicht funktionierende Zuweisend
(Ausgabe _C166_)Das _C166_ wird nicht durch die Version ersetzt.
Was mache ich falsch?
Hinweis: keine .c Datei sondern make-file
-
Lass doch dein Makefile durch den Präprozessor deines Compilers laufen.
Aber wahrscheinlich ist es besser im Makefile einen C-Quelltext, der
__C166__
ausgibt, zu kompilieren. Dann muss nur noch die Ausgabe eingelesen und anCOMVER
zugewiesen werden. Wie einfach das ist, hängt von den Features deines make ab.