Ich habe eine Reihe von kompilierten Delphi-dcu-Dateien, ohne Quelle. Gibt es eine Möglichkeit zu bestimmen, welche Typen in diesem dcu definiert sind?Wie kann ich feststellen, welche Typen in einer Delphi DCU definiert sind?
Antwort
Sie können sich DCU32INT ansehen, einen Delphi DCU Decompiler. Es erzeugt eine INT-Datei, die irgendwie lesbar, aber nicht kompilierbar ist, aber wenn Sie nur die definierten Typen bestimmen wollen, könnte dies ausreichen.
Das DCU-Format ist undokumentiert, zuletzt habe ich überprüft. Jedoch gibt es ein Tool, das ich gefunden habe, das Ihnen einige grundlegende Informationen geben könnte, die DCUtoPAS genannt werden. Es ist nicht sehr gut auf der Website bewertet, aber es könnte zumindest die Typen für Sie extrahieren. Es gibt auch DCU32INT, was auch helfen könnte.
Andernfalls müssen Sie nur die Datei mit einem Hex-Editor öffnen und nach Zeichenfolgen suchen.
DCUtoPAS hat überhaupt nicht funktioniert ... DCU32INT tat es aber. – JosephStyons
Um herauszufinden, was in einer Einheit folgende FooUnit, geben Sie in Ihrem Editor namens ist:
unit Test;
interface
uses FooUnit;
var
x: FooUnit.
Drücken Sie Strg + Leertaste am Ende, und die IDE wird eine Liste mit möglichen Abschluss Werte darstellen, die sollten hauptsächlich, wenn nicht ausschließlich, aus Typennamen bestehen.
Einfachste Lösung, und es funktioniert gut. Ich habe schnaaders akzeptiert, da es die DCU direkt zerlegt, anstatt sich auf die IDE zu verlassen. – JosephStyons
- 1. Delphi: Fehlende Dcu
- 2. Wie kann ich feststellen, welche Homebrew-Formeln aktualisierbar sind?
- 3. Wo können Delphi DCU-Dateien gespeichert werden?
- 4. Wie kann ich sehen, mit welcher Delphi-Version ein .dcu kompiliert wurde?
- 5. Wie kann ich feststellen, welche Unix-Shell ich verwende?
- 6. Wie kann ich feststellen, ob Jquery und Jquery UI installiert sind und welche Versionen installiert sind?
- 7. Wie kann ich feststellen, auf welche Elementnummer ich klicke?
- 8. Wie kann ich feststellen, welche Dateien eine ColdFusion-Anwendung verwendet?
- 9. Wie kann ich feststellen, welche Plattformversion benötigt wird?
- 10. Wie kann ich feststellen, welche Version von Cassandra ich verwende?
- 11. Wie kann ich feststellen, welche Zeilennummer in einer href in einer Tabelle angeklickt wird?
- 12. Wie kann ich feststellen, welche temporären Tabellen derzeit in SQL Server enthalten sind?
- 13. Wie kann ich feststellen, welche WCF-Version ausgeführt wird?
- 14. Wie kann ich feststellen, welche TextBox zuletzt den Fokus hatte?
- 15. Wie kann ich feststellen, welche Chrome-Version installiert ist?
- 16. Wie kann ich feststellen, welche Arbeitsmappe ein Ereignis ausgelöst hat?
- 17. Wie kann ich feststellen, welche HubSection ausgewählt ist?
- 18. Kann ich feststellen, welche Spalte ich an etwas bedingungsbedingt aktualisiere?
- 19. Wie kann ich feststellen, welche Ereignisse von GXT ausgelöst werden?
- 20. Wie kann ich feststellen, welche Schaltfläche zum Senden geklickt wurde
- 21. Wie kann ich zur Laufzeit feststellen, welche Kontrolle vorne liegt?
- 22. Django: Wie kann ich sehen, welche benutzerdefinierten Tags definiert wurden?
- 23. Fehler beim Erstellen der Zeichenfolgeneigenschaft. Wie kann ich feststellen, welche Datensätze problematisch sind?
- 24. Wie kann ich feststellen, welche Version von MVC installiert ist?
- 25. XCTest: Wie kann ich feststellen, welche XCTestExpectation aufgerufen "erfüllt"?
- 26. Wie kann ich feststellen, welche App von Intent.createChooser ausgewählt wurde?
- 27. Wie kann ich feststellen, welche SSL/TLS-Protokolle von meiner Client-Anwendung zugelassen sind?
- 28. Wie kann ich feststellen, welche Ereignisse an ein DOM-Element gebunden sind?
- 29. Wie kann ich feststellen, welche Displays mit Direct3D9 an dasselbe physische Gerät angeschlossen sind?
- 30. Wie kann ich feststellen, welche Bilder in der Quelle einer sehr großen Website tatsächlich verwendet werden?
dcu32int arbeitete für mich. Die .int-Datei war gut lesbar. – JosephStyons