Créer une PureLibrary
Introduction
PureBasic permet de créer facilement des bibliothèques personnalisées pour étendre le jeu de commandes de base de PureBasic avec plus de commandes personnelles. La bibliothèque générée sera située dans le dossier PureBasic/PureLibraries/UserLibraries/, assurez-vous donc d'avoir les droits d'accès appropriés lorsque vous essayez d'en générer une.
Pour l'instant, la création de purelibrary n'est disponible qu'en ligne de commande, en utilisant le compilateur backend C avec l'option '--purelibrary'. Il est également possible d'utiliser le formidable outil de création de bibliothèque de l'IDE par 'Pf Shadoko' trouvé sur ici qui propose également quelques fonctionnalités supplémentaires.
Comme une PureLibary ajoute une nouvelle commande au jeu de commandes standard, le nouveau nom de commande doit être différent des commandes internes. Une PureLibrary doit toujours être compilée avec le compilateur PureBasic sur lequel elle sera utilisée. Si une PureLibrary n'est pas fournie avec son code source associé, elle risque fort de se casser dans une future version de PureBasic.
Une PureLibrary peut également être créée à l'aide de C/C++ ou d'ASM, veuillez consulter le dossier PureLibrary/SDK/.
Fonctions d'exportation
Aucun code ne doit être écrit en dehors des procédures, à l'exception de la déclaration d'objet.
Pour exporter une fonction lors de la création d'une PureLibrary, elle doit être déclarée comme ProcedureDLL. Si des paramètres facultatifs sont nécessaires, une autre fonction portant le même nom mais avec un numéro incrémenté peut être utilisée. Un commentaire "Aide Rapide (QuickHelp)" peut également être ajouté pour que l'aide rapide soit affichée dans l'IDE lors de l'utilisation de la commande.
Exemple:
; QuickHelp MyMax(Min [, Max [, Options, Mode]]) - Une fonction min/max standard ProcedureDLL MyMax3(a, b, c, d) ; Votre code ici ProcedureReturn a EndProcedure ProcedureDLL MyMax2(a, b) ProcedureReturn MyMax3(a, b, 0, 0) EndProcedure ProcedureDLL MyMax(a) ProcedureReturn MyMax2(a, 0) EndProcedure
Fonctions automatiques
Il existe deux fonctions spéciales pour l'initialisation automatique et la libération de la bibliothèque : InitPureLibrary() et FreePureLibrary(). Contrairement aux autres fonctions de la bibliothèque, celles-ci ne sont pas déclarées avec ProcedureDLL mais avec Procedure. Ces deux fonctions sont automatiquement appelées au lancement du programme et lorsque le programme est terminé.
Exemple :
Procedure InitPureLibrary() ; Votre routine d'initialisation ici EndProcedure Procedure FreePureLibrary() ; Votre routine de libération des ressources ici EndProcedure
Désactivation d'une PureLibrary
Lors du codage de la PureLibrary, il peut être utile d'ignorer la bibliothèque actuelle avec DisablePureLibrary afin que le nom de la fonction puisse être réutilisé.
Exemple :
DisablePureLibrary MaLibSuperCool ; Toutes les fonctions trouvées dans "MaLibSuperCool" seront ignorées, afin que ; leur nom puisse être réutilisé avec ProcedureDLL
Suppression d'une PureLibrary
Pour supprimer une PureLibrary personnalisée, supprimez simplement le fichier correspondant dans le dossier PureBasic/PureLibraries/UserLibraries/.