显式例子::
Einheit Main;
Schnittstelle
Verwendung
Fenster, Nachrichten, Systeme, Varianten, Klassen, Grafiken, Steuerelemente, Formulare,
Dialoge, STDCTRLS, EXTCTRLS, GRIDS, DBGRIDS, DB, DBTABLE, DBCTRLS;
Typ
Tform1 = Klasse (tform)
Button1: Tbutton;
Edit1: tedit;
Edit2: tedit;
Bild1: Timage;
DataSource1: tdataSource;
Tabelle 1: TTABLE;
Tabelle1SpeciesNo: Tfloatfield;
Tabelle1Category: Tstringfield;
Tabelle1Common_Name: Tstringfield;
Tabelle1SpeciesName: Tstringfield;
Tabelle1Lengthcm: Tfloatfield;
Tabelle1Length_in: Tfloatfield;
Tabelle 1Notes: tmemofield;
Tabelle1Graphic: TGRAPHICFIELD;
DBGRID1: TDBGRID;
PROCEDURE Taste1Click (Absender: Tobject);
Privat
{Private Deklarationen}
öffentlich
{Öffentliche Erklärungen}
Ende;
// Funktion getInteger (i: Ganzzahl): Integer; stdcall; externe 'dllone.dll';
// Funktion getDouble (f: double): double; stdcall; externe 'dllone.dll';
TgetDouble = function (f: doppelt): doppelt; stdcall;
var
Form1: tform1;
Durchführung
{$ R *.dfm}
procedure tform1.button1click (Absender: tobject);
var d: doppelt;
Dllhandle: Thandle;
Func: TGetDouble;
beginnen
Image1.Picture.Sign (Tabelle1Graphic);
Tabelle1GRAPHIC.SIGN (Image1.Picture);
Ausfahrt;
DllHandle: = loadlibrary ('dllone.dll');
versuchen
@Func: = getProcaddress (dllHandle, 'getDouble');
//Edit1.text: = inttoStr (getInteger (2));
// d: = getDouble (2.2);
Wenn zugewiesen (@func) dann
beginnen
D: = func (2.2);
Edit2.text: = floattostr (d);
Ende;
Endlich
Freelibrary (dllHandle);
Ende;
Ende;
Ende.
隐式例子::
Bibliothek dllone;
Verwendung
SYSUTILS,
Klassen;
{$ R *.res}
Funktion getDoubleext (f: double): double; stdcall; externe 'dlltwo.dll';
Funktion getint (i: Ganzzahl): Integer; stdcall; externe 'dltwo.dll';
Funktion getInteger (i: Ganzzahl): Ganzzahl; stdcall;
beginnen
Ergebnis: = getint (i);
Ende;
Funktion getDouble (d: double): double; stdcall;
beginnen
Ergebnis: = getDoubleext (d);
Ende;
Exporte
Getinteger,
GetDouble;
beginnen
Ende.
Bibliothek dlltwo;
{Wichtiger Hinweis über DLL Memory Management: Sharemem muss die sein
Erste Einheit in der Klausel Ihrer Bibliothek und Ihrer Projekt
Projekt-View-Quelle) verwendet Klausel, wenn Ihre DLL alle Prozeduren exportiert oder
Funktionen, die Strings als Parameter oder Funktionsergebnisse übergeben. Das
gilt für alle Strings, die an und von Ihrer DLL geleitet werden-sogar für diejenigen, die
sind in Aufzeichnungen und Klassen verschachtelt. Sharemem ist die Schnittstelleneinheit zu
Der freigegebene Speichermanager von Borlndmm.dll, der entlang bereitgestellt werden muss
mit deiner DLL. Um die Verwendung von Borlndmm.dll zu vermeiden, geben Sie die String -Informationen über
Verwenden von PCHR- oder Shortstring -Parametern. }
Verwendung
SYSUTILS,
Klassen;
{$ R *.res}
Funktion getDoubleext (d: double): double; stdcall;
beginnen
Ergebnis: = D;
Ende;
Funktion getint (i: Ganzzahl): Ganzzahl; stdcall;
beginnen
Ergebnis: = i;
Ende;
Exporte
GetDoubleext,
Getint;
beginnen
Ende.