Una biblioteca de enlace dinámico (DLL) es una colección de rutinas (pequeños programas) a las que puede llamar aplicaciones y otras DLL. Al igual que las unidades, contienen código o recursos que se pueden compartir entre múltiples aplicaciones.
El concepto de DLL es el núcleo del diseño arquitectónico de Windows, y en su mayor parte, Windows es simplemente una colección de DLL.
Con Delphi, puede escribir y usar sus propios archivos DLL e incluso llamar a funciones independientemente de si se desarrollaron con otros sistemas o desarrolladores, como Visual Basico C / C ++.
Crear una biblioteca de enlaces dinámicos
Las siguientes líneas demostrarán cómo crear una DLL simple usando Delphi.
Para comenzar, inicie Delphi y navegue hasta Archivo> Nuevo> DLL para construir una nueva plantilla DLL. Seleccione el texto predeterminado y reemplácelo con esto:
biblioteca TestLibrary;
usos SysUtils, clases, cuadros de diálogo;
procedimiento DllMessage; exportar;empezar
ShowMessage ('Hola mundo desde una DLL de Delphi');
final;
exportaciones DllMessage;
Beginend.
Si nos fijamos en el archivo de proyecto de cualquier aplicación Delphi, verá que comienza con la palabra reservada programa. Por el contrario, las DLL siempre comienzan con biblioteca y luego un usos cláusula para cualquier unidad. En este ejemplo, el DllMessage sigue el procedimiento, que no hace nada más que mostrar un mensaje simple.
Al final del código fuente hay un exportaciones declaración que enumera las rutinas que realmente se exportan desde la DLL de manera que puedan ser llamadas por otra aplicación. Lo que esto significa es que puede tener, digamos, cinco procedimientos en un archivo DLL y solo dos de ellos (enumerados en el exportaciones se puede llamar desde un programa externo (los tres restantes son "subprocedimientos").
Para usar esta DLL, tenemos que compilarla presionando Ctrl + F9. Esto debería crear una DLL llamada SimpleMessageDLL.DLL en tu carpeta de proyectos.
Finalmente, echemos un vistazo a cómo llamar al procedimiento DllMessage desde una DLL cargada estáticamente.
Para importar un procedimiento contenido en una DLL, puede usar la palabra clave externo en la declaración de procedimiento. Por ejemplo, dado el procedimiento DllMessage mostrado anteriormente, la declaración en la aplicación que realiza la llamada se vería así:
procedimiento DllMessage; externo 'SimpleMessageDLL.dll'
La llamada real a un procedimiento no es más que:
DllMessage;
El código completo de un formulario de Delphi (nombre: Formulario 1), con un TButton (llamado Botón 1) que llama a la función DLLMessage, se parece a esto:
unidad Unidad 1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases,
Gráficos, controles, formularios, cuadros de diálogo, StdCtrls;
tipo
TForm1 = clase (TForm)
Botón1: TButton;
procedimiento Button1Click (Remitente: TObject);privado{Declaraciones privadas}público{Declaraciones públicas}final;
var
Form1: TForm1;
procedimiento DllMessage; externo 'SimpleMessageDLL.dll'
implementación
{$ R * .dfm}
procedimiento TForm1.Button1Click (Remitente: TObject);empezar
DllMessage;
final;
final.