LIBRARY |
Bibliothèque |
---|---|
Delphi/Kylix/Lazarus |
Syntaxe
Library nom; : BEGIN ... END. |
Paramètres
Nom | Description |
---|---|
nom | Ce paramètre permet le nom de la bibliothèque de type «DLL» |
Description
Ce mot réservé permet de définir une bibliothèque lors de la compilation. Quand la bibliothèque est chargé, Delphi exécute en premier l'initialisation des sections de toutes les unités. Après il exécute la partie d'initialisation du bloc du mot réservé Library. Les procédures et fonctions visibles et utilisable de l'externe de la bibliothèque doit être indiqué par les mots réservés Export et Exports.
Remarques
- Les bibliothèques sont nettement plus limité que les paquets dans ce qu'elles peuvent exporter. Ainsi, les bibliothèques ne peuvent pas exporter des constantes, des types et des variables normales. Autrement dit, les types de classe définis dans une bibliothèque ne seront pas visibles dans un programme utilisant cette bibliothèque.
- Si votre bibliothèque transmet des chaînes de caractères, des tableaux de dynamiques ou des Variant sous forme de paramètres ou de valeurs renvoyées entre les modules (l'application ou d'autres bibliothèques), vous devez utiliser l'unité ShareMem en tant que première unité.
- Si votre bibliothèque alloue de la mémoire (telle que des objets) libérée par les applications ou une autre bibliothèque, ou si votre bibliothèque libère des objets alloués par un module différent, vous devez utiliser l'unité ShareMem.
- Si vous passez des références d'objet en tant que paramètres ou que vous renvoyez des valeurs entre modules, sachez que les opérateurs is et as ne fonctionneront pas correctement. Chaque module (programme ou bibliothèque) conserve sa propre copie du RTTI de chaque classe. Les opérateurs is et as s'appuient sur RTTI pour tester les types de classe. Le RTTI implique donc différents types. Si cela pose un problème, utilisez des paquets plutôt que des bibliothèques.
- L'utilisation de spécificateurs d'index dans les mots réservés Exports, est pris en charge uniquement pour des raisons de compatibilité ascendante, mais est déconseillée. Par conséquent, cette pratique peut entraîner des problèmes pour d'autres outils de développement.
- Le fichier de code source de la bibliothèque contenant le mot réservé Library peut avoir l'extension «.PAS» ou «.DPR».
- On peut utiliser la fonction IsLibary pour déterminer si le code est exécuté dans une bibliothèque ou dans une application.
Exemple
L'exemple suivant permet de créer une bibliothèque conservé en mémoire retournant quelques informations sommaires :
- Library GladirLibrarySamples;
-
- {$C FIXED PERMANENT}
-
- Uses ShareMem;
-
- Var
- NumberOfSite:Integer = 0;
-
- Function GetWebSite:String;Export;Begin
- GetWebSite := 'Gladir.com';
- End;
-
- Function GetHumanLanguageSite:String;Export;Begin
- GetHumanLanguageSite := 'Francais';
- End;
-
- Function GetNumberOfSite:Integer;Export;Begin
- GetNumberOfSite := NumberOfSite;
- End;
-
- Function FunctionPrivate:Byte;Begin
- FunctionPrivate := 0;
- End;
-
- Exports
- GetWebSite,
- GetHumanLanguageSite,
- GetNumberOfSite;
-
- BEGIN
- NumberOfSite := 1;
- END.
Dernière mise à jour : Mercredi, le 18 février 2015