显式例子:
unit utama;
antarmuka
penggunaan
Windows, pesan, sysutils, varian, kelas, grafik, kontrol, formulir,
Dialog, stdctrls, extctrls, grids, dbgrids, dB, dbTables, dbctrls;
jenis
Tform1 = class (tform)
Button1: tbutton;
Edit1: tedit;
Edit2: tedit;
Gambar1: timage;
DataSource1: tDataSource;
Table1: Ttable;
Table1speciesno: tfloatfield;
Table1category: TStringfield;
Table1Common_Name: TStringfield;
Table1SpeciesName: TStringfield;
Table1LengthCM: TFLOATFIELD;
Table1length_in: tfloatfield;
Table1notes: tMemofield;
Table1Graphic: Tgraphicfield;
Dbgrid1: tdbgrid;
Prosedur Button1Click (pengirim: Tobject);
pribadi
{Deklarasi Pribadi}
publik
{Deklarasi Publik}
akhir;
// fungsi getInteger (i: integer): integer; stdcall; eksternal 'dllon.dll';
// function getDouble (f: double): double; stdcall; eksternal 'dllon.dll';
TgetDouble = function (f: double): double; stdcall;
var
Form1: tform1;
pelaksanaan
{$ R *.dfm}
Prosedur TFORM1.BUTTON1CLICK (Pengirim: Tobject);
Var D: Double;
DllHandle: Thandle;
Func: tgetDouble;
mulai
Image1.picture.assign (Table1Graphic);
Table1graphic.assign (gambar1.picture);
KELUAR;
DllHandle: = LoadLibrary ('Dllone.dll');
mencoba
@Func: = getProcaddress (dlllHandle, 'getDouble');
//Edit1.text: = inttoStr (getInteger (2));
// D: = getDouble (2.2);
Jika ditugaskan (@func) lalu
mulai
D: = func (2.2);
Edit2.text: = floattostr (d);
akhir;
Akhirnya
Freelibrary (DllHandle);
akhir;
akhir;
akhir.
隐式例子:
Perpustakaan Dllone;
penggunaan
Sysutils,
Kelas;
{$ R *.res}
function getDoubleext (f: double): double; stdcall; eksternal 'dlltwo.dll';
fungsi getint (i: integer): integer; stdcall; eksternal 'dlltwo.dll';
fungsi getInteger (i: integer): integer; stdcall;
mulai
Hasil: = getint (i);
akhir;
fungsi getDouble (D: DOUBLE): DOUBLE; STDCALL;
mulai
Hasil: = getDoubleext (D);
akhir;
ekspor
GetInteger,
Getdouble;
mulai
akhir.
Perpustakaan Dlltwo;
{Catatan penting tentang manajemen memori DLL: Sharemem harus
unit pertama di perpustakaan Anda menggunakan klausa dan proyek Anda (pilih
Sumber Proyek) menggunakan klausa jika DLL Anda mengekspor prosedur apa pun atau
Fungsi yang meneruskan string sebagai parameter atau hasil fungsi. Ini
berlaku untuk semua string yang diteruskan ke dan dari DLL Anda-bahkan itu
bersarang dalam catatan dan kelas. Sharemem adalah unit antarmuka untuk
The Borlndmm.dll Shared Memory Manager, yang harus digunakan bersama
dengan dll Anda. Untuk menghindari menggunakan borlndmm.dll, lulus informasi string
menggunakan parameter PCHAR atau shortstring. }
penggunaan
Sysutils,
Kelas;
{$ R *.res}
function getDoubleext (d: double): double; stdcall;
mulai
Hasil: = D;
akhir;
function getint (i: integer): integer; stdcall;
mulai
Hasil: = i;
akhir;
ekspor
GetDoubleext,
Getint;
mulai
akhir.