Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#5

AW: DDevExtensions und CompileTime

  Alt 29. Nov 2010, 13:32
Standardmäßig gibt es in den PE-Headern der EXE ein Feld für dieses Datum.
Leider stand da nie ein Datum drin, sondern nur eine (von irgendwem) sogenannte Delphi-Magic-Time, also ein bestimmert fester Wert.
Wenn dieser Delphi-Magic-Time gefunden wird, dann sucht der Code an einer anderen Stelle nach der gewünschten Zeit (zum Glück hat Delphi einen Datums-Wert da abgelegt). Wird keine Delphi-Magic-Time gefunden, dann wird diese Zeit als Compile-Time genommen (so wie es eigentlich von Microsoft geplant war).

Die DDevExtensions schreiben bestimmt die CompileTime in das "richtige" Feld mit rein.

"Leider" kann ich das hier nicht direkt prüfen, was die DDevExtensions machen (aber im Notfall kann Andy das ja aufklären),
da Delphi 2010 anschinend die Compile-Time nun endlich in der richtigen Stelle einträgt.



Zitat:
// FIXME: Borland's linker uses the local system time
// of the user who linked the executable image file.
// (is that information anywhere?)
Und diese Zeitverschiebung lößt sich leider nicht vermeiden,
da Delphi leider die lokale Zeit da einträgt.
Man könnte nun zwar über MSDN-Library durchsuchenLocalFileTimeToFileTime/MSDN-Library durchsuchenFileTimeToLocalFileTime dieses umrechnen (direkt nach DosDateTimeToFileTime), aber da man nicht rausfinden kann, in welcher Zeitzone sich der Compiler befand, ist es besser dieses zu belassen, anstatt diese Abweichung eventuell noch mehr zu verfälschen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat