Announcement

Collapse
No announcement yet.

Debuggen von DLLs

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Debuggen von DLLs

    Habe nicht wirklich ein Problem nur ein Frage zur Verwendung des Debuggers.
    Ist es irgendwie möglich das ich eine DLL die ich gerade entwickel debugge?

    Also bei mir sieht es gerade so aus. Ich schreibe eine DLL. Diese Enthällt ein Objekt das mir eben Funktionen, etc. zur Verfügung stellt.
    Wenn ich jetzt debuggen möchte, wie mache ich das?

    Gruß Pascal P.

  • #2
    Hallo,

    >Wenn ich jetzt debuggen möchte, wie mache ich das?

    die folgende Schritt-für-Schritt-Beschreibung demonstriert dies:

    1. Neues Windows Forms-Projekt anlegen, aus diesem Testprogramm wird die zu debuggende Assembly (DLL) aufgerufen. Die Projektgruppe speichern

    2. Neues Library-Projekt in der gleichen Projektgruppe anlegen und dort eine neue Klasse (Unit) hinzufügen.
    <pre>
    <b>unit</b> Class1;
    <br>
    <b>interface</b>
    <br>
    <b>type</b>
    TClass1 = <b>class</b>
    <b>private</b>
    <font color="#003399"><i>{ Private-Deklarationen }</i></font>
    <b>public</b>
    <b>constructor</b> Create;
    <b>function</b> DoWork: <b>String</b>;
    <b>end</b>;
    <br>
    <b>implementation</b>
    <br>
    <b>constructor</b> TClass1.Create;
    <b>begin</b>
    <b>inherited</b> Create;
    <font color="#003399"><i>// TODO: Hier die Konstruktorlogik einfügen</i></font>
    <b>end</b>;
    <br>
    <b>function</b> TClass1.DoWork: <b>String</b>;
    <b>begin</b>
    Result := <font color="#9933CC">'Der Text aus der Delphi 8-Assembly'</font>;
    <b>end</b>;
    <br>
    <b>end</b>.
    </pre>
    3. Das Library-Projekt compilieren.

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

    5. Im Windows Form-Projekt eine Instanz der zu debuggenden Klasse aus der Assembly anfordern:
    <pre>
    <b>procedure</b> TWinForm.Button1_Click(sender: System.<b>Object</b>; e: System.EventArgs);
    <b>var</b>
    aObj : Class1.TClass1;
    <b>begin</b>
    aObj := Class1.TClass1.Create;
    MessageBox.Show(aObj.DoWork);
    <b>end</b>;
    </pre>

    6. In die Unit <i>Class1.pas</i> des Library-Projekt der gemeinsamen Projektgruppe einen <b>Breakpoint</b> 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.

    Siehe dazu auch <i>http://www.entwickler.com/itr/features/psecom,id,114,nodeid,77.html</i&gt

    Comment


    • #3
      Super, danke. Hast mir sehr geholfen

      Comment

      Working...
      X