[delphi] Czas kompilacji programu.

0

Witam.
Czy we wnętrzu pliku exe skompilowanego przez kompilator delphi są jakieś informacje na temat czasu kompilacji?

0

Raczej daty, informacje tego typu znajdują się w nagłówku pliku generowanym przez linkera, z tego co pamiętam to linker Borlanda wstawia tam stały czas, bodaj czas swojego zbudowania.
TimeDateStamp: 0x2A425E19 (GMT: Fri Jun 19 22:22:17 1992)

0

Skompiluj, skopiuj gdzieś gotowy exe, przestaw date o miesiac do przodu, skompiluj jeszcze raz i porównaj ze sobą pliki(w linii komend polecenie "comp" o ile mnie pamięc nie myli).

0

Zdecydowanie lepiej jest użyć do porównania funkcji Porównaj wg zawartości z TotalCommandera.

0

Niby dlaczego lepiej? Total Commandera najpierw tzreba mieć, zaś fc\comp są w każdym systemie Windows.

0

Obejrzyj efekty obu porównań, potem pytaj.

0

Wiesz, nie chrzań, tyle tylko powiem. Porównywane pliki to specjalnie do tego zrobione binarki w asm, różnią się jednym bajtem w sekcji danych oraz TimeStampem i sumą kontrolną. Tak wygląda porównanie z TC, a tak przez FC.

c:/Documents and Settings/deus $ fc /B test.exe test2.exe
Porównywanie plików test.exe i TEST2.EXE
00000088: 4B 1D
000000D8: D7 A8
00000408: 1A 19

Jak Tobie porównanie z TC daje pełen obraz sytuacji to chylę czoło, praktycznie nie ma ludzi swobodnie czytających strukturę PE COFFa z hexów. Tyle samo da każdy sensowny hexedytor, tylko, że ani Ty ani cywil więcej niż z FC i tak nie wyniosą. Do porównania nagłówków plików zaś najlepiej nadaje się LordPE (screen), jednak jak mówiłem - binarki z zabawek Borlanda mają zawsze ten sam TimeStamp, więc to porównanie wiele nie da.

Pomyśl, potem proponuj. Instalowanie kolejnego zbędnego programu tylko po to aby się niczego nie dowiedzieć faktycznie ma sens.

0

Manipulant z Ciebie, ja pisałem o poleceniu comp. Wynik porównania dla dwóch plików różniących się godziną kompilacji wygląda tak:

Trwa por˘wnywanie tmh.exe i tmh.old...
BĄd por˘wnywania w OFFSET 2F1443
plik1 = 9F
plik2 = DE
BĄd por˘wnywania w OFFSET 2F1444
plik1 = 8F
plik2 = 60
BĄd por˘wnywania w OFFSET 2F1445
plik1 = 9A
plik2 = 73
BĄd por˘wnywania w OFFSET 2F1446
plik1 = 9A
plik2 = 73
BĄd por˘wnywania w OFFSET 2F1447
plik1 = 0
plik2 = E9
BĄd por˘wnywania w OFFSET 2F1448
plik1 = 1
plik2 = E8
BĄd por˘wnywania w OFFSET 2F1449
plik1 = 61
plik2 = 88
BĄd por˘wnywania w OFFSET 2F144A
plik1 = 61
plik2 = 88
BĄd por˘wnywania w OFFSET 2F144B
plik1 = 61
plik2 = 88
BĄd por˘wnywania w OFFSET 2F144C
plik1 = 61
plik2 = 88
10 niezgodnoci - koniec por˘wnywania
pliki różnią się na 12 bajtach

0

A zobacz, że ja o FC wspominałem i nic na ten temat nie powiedziałeś. Druga sprawa - wyniki porównania z TC coś Ci mówią? Trzecia - comp na moich binarkach daje takie same wyniki jak i FC czy TC:

C:\Documents and Settings\deus>comp test.exe test2.exe
Trwa porównywanie test.exe i test2.exe...
Błąd porównywania w OFFSET 88
plik1 = 4B
plik2 = 1D
Błąd porównywania w OFFSET D8
plik1 = D7
plik2 = A8
Błąd porównywania w OFFSET 408
plik1 = 1A
plik2 = 19

To jak, potrafisz coś sensownego powiedzieć na bazie wyników z TC? Czy tylko odgrywasz się za tego starego bana na niecałe trzy dni za kontrowersyjną wypowiedź? Zresztą, wrzuć te binarki co to niby jest zla ilość wyników, moje binarki mają 3 dwordy o różnych wartościach, różnią się jednak tylko trzema bajtami, może po prostu nie potrafisz policzyć rozmiaru różnic?

0

Wyniki z TC wszystko mi mówią, mam adresy i zawartość, podobnie jak w fc. Różnica na korzyść TC jest taka, że wyświetla to co różne poziomo, a ja od wielu lat wolę czytać z lewej na prawo niż z góry na dól.
Te binarki maja około 3 mB, ale comp zadziała tak na wszystkich plikach:

  • comp w ogóle nie porównuje plików różnej wielkości,
  • przerywa pracę po znalezieniu 10 różnic.
    Jestem gotów na kompromis, jeśli różnice występują w bloku (kolejnych bajtach) zdecydowanie czytelniejszy jest TC, jeżeli różnice występują w porozrzucanych bajtach czytelniejszy jest fc. Comp jest do niczego

1 użytkowników online, w tym zalogowanych: 0, gości: 1