Einzelnen Beitrag anzeigen

Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#1

Wie dll compilieren

  Alt 12. Dez 2013, 14:28
Hallo,

ich versuche mich gerade daran, sich häufig ändernden Code in eine DLL auszulagern. Zu diesem Zweck betreibe ich natürlich tests. Allerdings komme ich nicht wirklich weiter. Ich habe eine Library und ein Program und würde das gern testen. Das Programm wird kompiliert, lässt sich aber nicht ausführen, weil die DLL-Datei nicht erstellt wird.

Wie macht man das?

Ich habe bereits im Internet einige Tutorials zum Thema DLL angeschaut. Auf diese Frage wird nirgends eingegangen. Ich gehe deshalb davon aus, dass sich die DLL mehr oder weniger automatisch kompilieren sollte.
Da es aber evtl. auch am Code liegen könnte, habe ich diesen hier angefügt:
Delphi-Quellcode:
Library DLLForm;

Uses Classes, Controls, Forms, StdCtrls, ExtCtrls;

Type
   TaDLLForm = Class(TForm)
      Btn1   : TButton;
      Btn2   : TButton;
      Timer1: TTimer;
      Procedure DoSomething(Sender: TObject);
   End;

{$R *.dfm}

Procedure TaDLLForm.DoSomething(Sender: TObject);
Begin
   Timer1.Enabled:=False;
   If (Sender = Btn1 ) Then Caption:='Button 1 gedrückt.'
   Else If (Sender = Btn2 ) Then Caption:='Button 2 gedrückt.'
   Else If (Sender = Timer1) Then Caption:='Lange nichts gedrückt.'
   Else Caption:='Was war das denn?';
   Timer1.Enabled:=True;
End;

Procedure DLLFormular; StdCall;
Var
   aDLLForm      : TaDLLForm;
Begin
   aDLLForm:=aDLLForm.Create(Application);
   Try
      aDLLForm.ShowModal;
   Finally
      aDLLForm.Release;
   End;
End;

Exports
   DLLFormular;

Begin
End.
und das "Haupt"programm sieht dann so aus:
Delphi-Quellcode:
Unit _main;

Interface

Uses Classes, Controls, Forms, StdCtrls;

Type
   TAppForm = Class(TForm)
      Button1: TButton;
      Procedure Button1Click(Sender: TObject);
   End;

Var
   AppForm : TAppForm;

Procedure DLLFormular; Stdcall; External 'DLLForm.dll';   

Implementation

{$R *.dfm}

Procedure TAppForm.Button1Click(Sender: TObject);
Begin
   DLLFormular;
End;

End.
Sollten schon jetzt grobe Schnitzer drin sein, freue ich mich über Hinweise, bevor ich dann später irgend welche schlimmeren Dinge ausbaden muss.

Gruß & Dank, Alex
Alex Winzer
  Mit Zitat antworten Zitat