显式例子:
unidad principal;
interfaz
usos
Windows, mensajes, sysutils, variantes, clases, gráficos, controles, formularios,
Diálogo, stdctrls, extctrls, cuadrículas, dbGrids, db, dBtables, dbctrls;
tipo
TForm1 = class (tForm)
Botón 1: tbutton;
Edit1: tedit;
Edit2: tedit;
Imagen1: Tiempo;
DataSource1: TDataSource;
Tabla1: ttable;
Tabla1Speciesno: tfloatfield;
Tabla1Category: tStringfield;
Tabla1Common_Name: tStringfield;
Tabla1SpeciesName: tStringfield;
Tabla1Lengthcm: tfloatfield;
Table1Length_in: tfloatfield;
Tabla 1Notes: TMemOfield;
Tabla1Graphic: Tgraphicfield;
Dbgrid1: tdbgrid;
Procedimiento botón1Click (remitente: tobject);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
// función getInteger (i: entero): integer; stdcall; externo 'dllone.dll';
// función getDouble (f: doble): doble; stdcall; externo 'dllone.dll';
TgetDouble = function (f: doble): doble; stdcall;
varilla
Form1: tform1;
implementación
{$ R *.dfm}
procedimiento tForm1.Button1Click (remitente: tobject);
var d: doble;
Dllhandle: Thandle;
Func: tgetDouble;
comenzar
Image1.Picture.Assign (Tabla1Graphic);
Tabla1Graphic.Assign (Image1.Picture);
Salida;
Dllhandle: = loadLibrary ('dllone.dll');
intentar
@Func: = getProcAddress (dllhandle, 'getDouble');
//Edit1.text: = intToStr (getInteger (2));
// d: = getDouble (2.2);
Si se asigna (@Func) entonces
comenzar
D: = func (2.2);
Edit2.Text: = FloatToStr (d);
fin;
finalmente
Freelibrary (dllhandle);
fin;
fin;
fin.
隐式例子:
biblioteca dllone;
usos
Sysutils,
Clases;
{$ R *.res}
function getDoubleExt (f: double): double; stdcall; externo 'dlltwo.dll';
función getInt (i: entero): integer; stdcall; externo 'dlltwo.dll';
función getInteger (i: entero): integer; stdcall;
comenzar
Resultado: = getint (i);
fin;
función getDouble (D: doble): doble; stdcall;
comenzar
Resultado: = getDoublext (d);
fin;
exportaciones
GetInteger,
GetDouble;
comenzar
fin.
biblioteca dlltwo;
{Nota importante sobre la gestión de la memoria de DLL: Sharemem debe ser el
La primera unidad de la cláusula usa de su biblioteca y la de su proyecto (seleccione
Fuente del proyecto-View) utiliza la cláusula si su DLL exporta algún procedimiento o
Funciones que pasan cadenas como parámetros o resultados de función. Este
se aplica a todas las cuerdas pasadas hacia y desde su dll, incluso las que
están anidados en registros y clases. Sharemem es la unidad de interfaz para
el Administrador de memoria compartida de Borlndmm.Dll, que debe implementarse junto
con tu dll. Para evitar el uso de Borlndmm.Dll, pase la información de la cadena
Uso de parámetros PCHAR o cortaff. }
usos
Sysutils,
Clases;
{$ R *.res}
función getDoubleExt (d: double): double; stdcall;
comenzar
Resultado: = D;
fin;
function getInt (i: entero): integer; stdcall;
comenzar
Resultado: = i;
fin;
exportaciones
GetDoullext,
Getint;
comenzar
fin.