Как я могу увидеть, какая версия Delphi a.dcu был скомпилирован с?

Если у меня есть немного .файлы dcu; как я могу узнать, с какой версией Delphi они были скомпилированы?

Я получил старый исходный код, и некоторые .файлы dcu включены, и у меня нет доступа к исходному исходному коду. Я хочу, чтобы рефакторинг это библиотека, но для этого я хочу просто сделать его компиляции в оригинале Делфи версию.


Кстати, компилятор может быть немного более полезным здесь. В нем говорится, что файл X был скомпилирован с" другой " версией, не говоря уже о том, какая версия....

3 ответов


из неофициальных источников, посмотрите на 4-й байт .dcu

F = Delphi 7
 = Delphi 2005
 = Delphi 2006 or 2007
 = Delphi 2009
 = Delphi 2010
 = Delphi XE
 = Delphi XE2
 = Delphi XE3
 = Delphi XE4
A = Delphi XE5
B = Delphi XE6
C = Delphi XE7
D = Delphi XE8
E = Delphi 10 Seattle
F = Delphi 10.1 Berlin

не было никаких изменений .формат dcu идет от Delphi 2006 до Delphi 2007. Поэтому они используют то же самое.

Редактировать 2 Июля 2016 добавлены XE8, 10 и 10.1 в список.

по запросу, также целевая платформа, которая находится во втором байте .dcu. Значения, конечно, допустимы только для версий, которые имеют эти цели.

 = Win32
 = Win64
 = Osx32
 = iOS emulator
 = iOS device
 = Android

Дайте мне знать, если вы думаю, это ошибка.


пока ищу ответ, я столкнулся с удивительным онлайн инструментом Алексея Hmelnov.

Он позволяет загружать .dcu файл, и это даст вам чрезвычайно подробную информацию о нем.

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

Он показывает используемый компилятор, время компиляции, используемые единицы и т. д.


файл DCU является проприетарным форматом, разработанным в Borland (теперь Embarcadero) в качестве промежуточных данных между скомпилированным кодом и исходным кодом. Это основная причина, почему компилятор Delphi может генерировать исполняемый файл так быстро. Информация об этом формате намеренно скудна. Борланд не предоставил документацию об этом, Embarcadero, похоже, следует по тому же пути. Существует утилита под названием "Деде" который может разбирать скомпилированные файлы, созданные старыми Delphi версии и приносят несколько сведений об этом, включая версию файла dcu. Он не работает для двоичных файлов, производимых компиляторами Delphi новее версии 5, но исходный код включен, возможно, его можно было бы улучшить.