Zitat von
Master_RC:
kann mir evtl. noch jemand erklären, wie DLLs funktionieren?
ich hab mir schon etliche tutos runtergeladen, kapiers abba einfach nicht... das geht doch gar net!
Also, eine
DLL ist eine Sammlung von Funtionen/Prozeduren die man susätzlich zur EXE laden kann.
Entweder direkt beim Programmstart oder zur Laufzeit.
Z.B. ist es möglich per DLLs Plugins zu realisieren indem jede
DLL die gleichen Funktionen bereitstellt (=exportiert).
Eine sehr einfache
DLL für einen Musikplayer könnte so aussehen:
Delphi-Quellcode:
library WAVPlayer;
uses
SysUtils, MMSystem;
{$R *.res}
function Play(FileName: PChar): Boolean; stdcall;
begin
PlaySound(FileName, 0, SND_FILENAME);
end;
exports
Play;
end.
Für MP3 müßte man die Implementierung der Play-Funktion natürlich entsprechend ändern.
Der Sinn hier DLLs zu verwenden ist, daß man das fertig Programm nachträglich erweitern kann.
Dazu muß aber die Schnittstelle gleich bleiben, also Play-Funktion muß immer vorhanden sein und die Parameter müssen gleich bleiben.
stdcall ist häufig sinnvoll da praktisch jede Programmiersprache diese Aufrufart unterstüzt. Sie ist auch die Standardaufrufsmethode für die Windows-
API.
DLLs funktionieren aber nicht gut wenn man Objekte "exportieren" möchte. Innerhalb einer
DLL geht das aber falls z.B. wie bei Formen man auf das Application-Objekt zugreifen muß ist dies sehr schwierig. Deswegen gibt es Packages (BPLs). Die kümmern sich um die Verwaltung die bei Objekten anfällt sind aber dafür aber nur mit Delphi nutzbar und auch von der Delphi-Version abhängig.
Hoffe das hilft etwas, Maël.