Как сказать, какие типы определяются в Delphi DCU?

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

foreach (MethodDeclarationSyntax method in methodDeclarations)
{
    var symbol = semanticModel.GetEnclosingSymbol(method.SpanStart);
    var assembly = symbol.ContainingAssembly;
    var assemblyName = assembly.Identity.Name;
}
6
задан JosephStyons 22 April 2009 в 14:50
поделиться

3 ответа

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

7
ответ дан 8 December 2019 в 13:02
поделиться

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

unit Test;

interface

uses FooUnit;

var
  x: FooUnit.

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

9
ответ дан 8 December 2019 в 13:02
поделиться

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

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

2
ответ дан 8 December 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: