Einzelnen Beitrag anzeigen

Benutzerbild von mael
mael

Registriert seit: 13. Jan 2005
391 Beiträge
 
Delphi XE3 Professional
 
#14

Re: Externen Programmcode ausführen?

  Alt 13. Feb 2005, 15:55
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.
  Mit Zitat antworten Zitat