Как определить, какие типы определены в Delphi DCU? - PullRequest
6 голосов
/ 22 апреля 2009

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

Ответы [ 3 ]

9 голосов
/ 22 апреля 2009

Чтобы узнать, что находится в блоке с именем FooUnit , введите в своем редакторе следующее:

unit Test;

interface

uses FooUnit;

var
  x: FooUnit.

Нажмите Ctrl + Пробел в конце, и среда IDE представит список возможных значений завершения, который должен состоять в основном, если не исключительно, из имен типов.

7 голосов
/ 22 апреля 2009

Вы можете взглянуть на DCU32INT , декомпилятор Delphi DCU. Он генерирует файл .int, который каким-то образом читается, но не компилируется, но если вы хотите определить только определенные типы, этого может быть достаточно.

2 голосов
/ 22 апреля 2009

Формат DCU недокументирован, последний раз я проверял. Тем не менее, я нашел инструмент, который может дать вам некоторую базовую информацию, которая называется DCUtoPAS . Он не очень хорошо оценен на сайте, но может по крайней мере извлечь типы для вас. Существует также DCU32INT , который также может помочь.

В противном случае вам может понадобиться открыть файл с помощью шестнадцатеричного редактора и поискать строки.

...