簡體   English   中英

如何查看 .dcu 是用哪個 Delphi 版本編譯的?

[英]How can I see which Delphi version a .dcu was compiled with?

如果我有一些 .dcu 文件; 我怎樣才能找出它們是用哪個 Delphi 版本編譯的?

我收到了一些舊的源代碼,其中包含一些 .dcu 文件,但我無法訪問原始源代碼。 我想重構這個庫,但為此我只想先在原始 Delphi 版本中編譯它。


從非官方來源,查看 .dcu 的第 4 個字節

$0F = Delphi 7
$11 = Delphi 2005
$12 = Delphi 2006 or 2007
$14 = Delphi 2009
$15 = Delphi 2010
$16 = Delphi XE
$17 = Delphi XE2
$18 = Delphi XE3
$19 = Delphi XE4
$1A = Delphi XE5
$1B = Delphi XE6
$1C = Delphi XE7
$1D = Delphi XE8
$1E = Delphi 10 Seattle
$1F = Delphi 10.1 Berlin
$20 = Delphi 10.2
$21 = Delphi 10.3
$22 = Delphi 10.4

從 Delphi 2006 到 Delphi 2007,.dcu 格式沒有變化。因此它們使用相同的格式。

編輯 2016 年 7 月 2 日將XE8、10 和 10.1 添加到列表中。

根據要求,還有目標平台,可在 .dcu 的第二個字節中找到。 值當然僅對具有這些目標的版本有效。

$03 = Win32
$23 = Win64
$04 = Osx32
$14 = iOS emulator
$76 = iOS device
$77 = Android

如果您認為有錯誤,請告訴我。

在尋找答案時,我遇到了 Alexei Hmelnov 的一個很棒的在線工具。

它允許您上傳 .dcu 文件,它會為您提供非常詳細的信息。

http://geos.icc.ru:8080/scripts/WWWBinV.dll

它顯示了使用的編譯器、編譯時間、使用的單位等。

DCU 文件是 Borland(現為 Embarcadero)開發的專有格式,作為編譯代碼和源代碼之間的中間數據。 這是 Delphi 編譯器能夠如此快速地生成可執行文件的主要原因。 關於這種格式的信息是故意稀缺的。 Borland 沒有提供有關它的文檔,Embarcadero 似乎遵循相同的路徑。 有一個名為“DeDe”的實用程序可以反匯編由舊 Delphi 版本創建的編譯文件,並提供有關這些文件的一些信息,包括 dcu 文件版本。 它不適用於比版本 5 新的 Delphi 編譯器生成的二進制文件,但包含源代碼,也許可以改進。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM