如果我有一些.dcu文件,我如何才能知道它们是用哪个 Delphi 版本编译的?
我收到了一些旧的源代码,其中包含了一些.dcu文件,但我无法访问原始源代码。我想重构这个库,但为此我想先让它在原始 Delphi 版本中编译。第一个月
yzckvree1#
从非官方来源,看看.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 $23 = Delphi 11
字符串从 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
型如果你认为有错误请告诉我。
doinxwow2#
在寻找答案时,我遇到了Alexei Hmelnov的一个很棒的在线工具。它可以让你上传一个.dcu文件,它会给你给予非常详细的信息。http://geos.icc.ru:8080/scripts/WWWBinV.dll它显示了使用的编译器、编译时间、使用的单位等。
dfty9e193#
DCU文件是Borland开发的专有格式(现在的Embarcadero)作为编译代码和源代码之间的中间数据。这是 Delphi 编译器可以如此快速地生成可执行文件的主要原因。有关这种格式的信息故意很少。Borland没有提供有关它的文档,Embarcadero似乎遵循同样的道路。有一个名为"DeDe"的实用程序可以反汇编旧 Delphi 版本创建的编译文件,并带来有关这些的几个信息,包括dcu文件版本。它不适用于比版本5更新的 Delphi 编译器产生的二进制文件,但源代码包括在内,也许可以改进。
3条答案
按热度按时间yzckvree1#
从非官方来源,看看.dcu的第4个字节
字符串
从 Delphi 2006到 Delphi 2007,.dcu格式没有变化,因此他们使用相同的格式。
编辑2016年7月2日已将XE8、10和10.1添加到列表中。
根据要求,也可以在. dcu的第二个字节中找到目标平台。值当然只对具有这些目标的版本有效。
型
如果你认为有错误请告诉我。
doinxwow2#
在寻找答案时,我遇到了Alexei Hmelnov的一个很棒的在线工具。
它可以让你上传一个.dcu文件,它会给你给予非常详细的信息。
http://geos.icc.ru:8080/scripts/WWWBinV.dll
它显示了使用的编译器、编译时间、使用的单位等。
dfty9e193#
DCU文件是Borland开发的专有格式(现在的Embarcadero)作为编译代码和源代码之间的中间数据。这是 Delphi 编译器可以如此快速地生成可执行文件的主要原因。有关这种格式的信息故意很少。Borland没有提供有关它的文档,Embarcadero似乎遵循同样的道路。有一个名为"DeDe"的实用程序可以反汇编旧 Delphi 版本创建的编译文件,并带来有关这些的几个信息,包括dcu文件版本。它不适用于比版本5更新的 Delphi 编译器产生的二进制文件,但源代码包括在内,也许可以改进。