Sonntag, 7. September 2008

entwickler.com Magazine Konferenzen Akademie Entwickler-Forum Jobbörse Bücher
Software & Support Verlag

Delphi 8: Debuggen von DLLs

Frage: Ich schreibe in Delphi 8 eine DLL. Diese DLL enthält ein Objekt, das mir Funktionen zur Verfügung stellt. Wenn ich jetzt die Implementierung einer Methode dieser Klasse aus der DLL debuggen möchte, wie mache ich das?

Antwort: Die folgende Schritt-für-Schritt-Beschreibung erläutert die dazu notwendigen Schritte innerhalb der Entwicklungsumgebung Borland Delphi 8:

1. Neues Windows Forms-Projekt anlegen. Aus diesem Testprogramm heraus wird die zu debuggende Assembly (DLL) aufgerufen. Das Projekt und auch die Projektgruppe sofort speichern.

2. Neues Library-Projekt in der gleichen Projektgruppe anlegen und dort eine neue Klasse (Unit) hinzufügen. Das von Delphi 8 angelegte Grundgerüst dieser Klasse wird um die eigene Methode DoWork erweitert:

unit Class1;

interface
type TClass1 = class private { Private-Deklarationen } public constructor Create; function DoWork: String; end;
implementation
constructor TClass1.Create; begin inherited Create; // TODO: Hier die Konstruktorlogik einfügen end;
function TClass1.DoWork: String; begin Result := 'Der Text aus der Delphi 8-Assembly'; end;
end.
3. Das Library-Projekt speichern und compilieren.

4. Zum Windows Form-Projekt wechseln und dort die Assembly-DLL des Library-Projekts über die Registerseite Projektreferenzen in die References-Liste einbinden.

5. Im Windows Form-Projekt eine Instanz der zu debuggenden Klasse aus der Assembly anfordern:
procedure TWinForm.Button1_Click(sender: System.Object; e: System.EventArgs);
var
  aObj : Class1.TClass1;
begin
  aObj := Class1.TClass1.Create;
  MessageBox.Show(aObj.DoWork);
end;
6. In die Unit Class1.pas des Library-Projekt der gemeinsamen Projektgruppe einen Breakpoint setzen.

7. In der Projektgruppe die Windows Form-Anwendung aktívieren und die Windows Form-Anwendung aus Delphi 8 heraus starten. Wenn dort der Button angeklickt wird, bleibt der Delphi 8-Debugger in der Programmzeile des Library-Projekts stehen, in der sich der Breakpoint befindet.






Software & Support Verlag GmbH