www.mikrocontroller.net

Forum: PC-Programmierung Visual C++ 6: Zeitstempel im exe-File


Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
wenn ich dasselbe Projekt zu verschiedenen Zeitpunkten kompiliere, 
treten bei der resultierenden exe-Dateien im Binärvergleich einige 
unterschiedliche Bytes auf. Ich nehme an, dass es sich um eine Art 
Zeitstempel handelt. Ich würde aber gerne, dass exe-Files absolut gleich 
sind, wenn sich am Projekt nichts geändert hat. Das Verhalten tritt 
übrigens auch beim Watcom-Compiler auf. Lässt sich das irgendwo 
abstellen? Ich habe keine derartige Option gefunden.
Gruß Jörg

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Joa Timestamp gibts im PE Format. Das andere Byte an 0xD8 dürfte eine 
Checksumme sein. Einfach mal schauen was die Spec so hergibt: 
http://download.microsoft.com/download/e/b/a/eba10...

Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke schön,
das sieht aber nicht so aus, als ob man das in den makefile-Optionen 
abschalten könnte, oder?
Dann bliebe entweder, in jedem exe-File mit einem selbstgeschriebenen 
Programm diese Bytes zu überschreiben (was auch ziemlich nervig ist), 
oder man merkt sich einfach, dass wenn nur diese bestimmten Bytes beim 
Binärvergleich unterschiedlich sind, diese exe-Files aus denselben 
Quellen erzeugt wurden
Gruß
 Jörg

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum ist es überhaupt wichtig ob die exe gleich ist?
Es sollte doch eine Versionnummer geben in der man erkennt um welche exe 
es sich handelt.

Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter
Es geht einfach darum: man hat irgendwo eine exe-Datei, die bestens 
funktioniert und weiß aus welchen Projekt diese stammt, weiß aber nicht 
mehr genau, welcher Quelltextversion (innerhalb dieses Projekts) sie 
entspricht. Dann kann man sie durch Kompilieren der verschiedenen 
Quelltextversionen und Binärvergleich ihrem Quelltext genau zuordnen

Was für eine Versionsnummer meinst Du?
Eine die man selber vergibt und in die exe hineinschreibt (und per 
'-v'-Parameter oder so auslesen kann)?
Falls ja: Das sollte man natürlich machen. Es kommt aber eben auch mal 
vor, dass man Änderungen vornimmt, und vergisst die Versionsnummer zu 
ändern
Gruß
 Jörg

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn man mit Versionierung arbeitet und in die Files entsprechende Tags 
einbindet, dann kann man mit dazu passenden Tools diese hinten wieder 
rausfischen und kennt dann die Quelltextversion.

Autor: Jörg Günzel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ A. K.
Aber das wäre dann eine Software außerhalb von Visual Studio, wie 
Subversion?
Gruß
 Jörg

Autor: Name (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Es kommt aber eben auch mal vor,
>dass man Änderungen vornimmt,
>und vergisst die Versionsnummer zu ändern

Du kannst es ja auch so machen, dass nach jedem Kompilieren ein Programm 
gestartet wird, dass dann die Ressourcendatei bearbeitet und die 
Versionsnummer um 1 inkrementiert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.