Les directives du compilateur
DescriptionCompilerIf <expression constante> ... [CompilerElseIf] ... [CompilerElse] ... CompilerEndIf
Si <expression constante> est vrai alors le code inclus dans la structure 'If' sera compilé, sinon il sera totalement ignoré.
Cette directive permet de construire des programmes multi-plateformes en personnalisant des parties du code source en fonctions de chaque système d'exploitation.
Exemple
CompilerIf #PB_Compiler_OS = #PB_OS_Linux ; code spécifique Linux.. CompilerElseIf #PB_Compiler_OS = #PB_OS_Windows ; code spécifique pour Windows CompilerEndIf
DescriptionCompilerSelect <constante numérique> CompilerCase <constante numérique> ... [CompilerElse] ... [CompilerDefault] ... CompilerEndSelect
Fonctionne comme un Select : EndSelect classique en opérant une compilation conditionnelle.
Cette directive permet de construire des programmes multi-plateformes en personnalisant des parties du code source en fonctions de chaque système d'exploitation.CompilerSelect #PB_Compiler_OS CompilerCase #PB_OS_MacOS ; du code spécifique à Mac OS X CompilerCase #PB_OS_Linux ; du code spécifique à Linux CompilerEndSelect
DescriptionCompilerError <message> CompilerWarning <message>
Génère une erreur ou un avertissement du compilateur, comme si c'était une erreur de syntaxe et affiche le message spécifié. Ceci peut être utile pour faire des routines spécifiques et indiquer qu'elles ne sont pas disponibles pour un OS particulier.
Note: CompilerWarning affiche des avertissements" et le processus de compilation se poursuit, alors que la commande CompilerError arrête le processus de compilation.
Exemple: Génère une erreur
CompilerIf #PB_Compiler_OS = #PB_OS_Linux CompilerError "Linux n'est pas supporté, désolé." CompilerElse CompilerError "OS Supporté, vous pouvez me mettre en commentaire." CompilerEndIf
Exemple: Génère un avertissement
CompilerIf #PB_Compiler_OS = #PB_OS_Linux CompilerWarning "Linux n'est pas supporté, désolé." CompilerElse CompilerWarning "OS Supporté, vous pouvez me mettre en commentaire." CompilerEndIf
DescriptionEnableExplicit DisableExplicit
Active ou désactive le mode explicite. Quand il est actif, toutes les variables qui ne sont pas explicitement déclarées avec Define, Global, Protected ou Static ne seront pas acceptées par le compilateur et génèreront une erreur. Cela peut aider à éviter les erreurs de frappe.
Exemple
EnableExplicit Define a a = 20 ; Ok, car déclaré avec 'Define' b = 10 ; Erreur
DescriptionEnableASM DisableASM
Active ou désactive l'assembleur en ligne. Quand il est actif, toutes les commandes assembleur sont incluses directement dans le code source, pour plus d'informations référez vous à la page L'assembleur en ligne.
Exemple
; Exemple assembleur x86 ; Test = 10 EnableASM MOV dword [v_Test],20 DisableASM Debug Test ; Affichera 20
Constantes prédéfinies
Le compilateur PureBasic déclare automatiquement plusieurs constantes avant chaque compilation pour donner plus d'informations sur l'environnement de développement:#PB_Compiler_OS: Permet de savoir sur quelle plateforme est exécuté le compilateur #PB_OS_Windows : Le compilateur est exécuté sur Windows #PB_OS_Linux : Le compilateur est exécuté sur Linux #PB_OS_MacOS : Le compilateur est exécuté sur Mac OS X #PB_Compiler_Processor : Détermine le type de processeur pour lequel le programme est créé. Il peut s'agir de l'un des éléments suivants: #PB_Processor_x86 : Architecture de processeur x86 (aussi appelé IA-32 ou x86-32) #PB_Processor_x64 : Architecture de processeur x86-64 (aussi appelé x64, AMD64 ou Intel64) #PB_Processor_arm32 : Architecture de processeur arm32 #PB_Processor_arm64 : Architecture de processeur arm64 (appelé M1 sur les ordinateurs Apple) #PB_Compiler_Backend : Détermine quel type de compilateur est actuellement utilisé. Il peut s'agir de l'un des éléments suivants : #PB_Backend_Asm : Le compilateur assembleur génére le code. #PB_Backend_C : Le compilateur C génére le code. #PB_Compiler_ExecutableFormat : Détermine le format de l'exécutable. Il peut être l'un des suivants: #PB_Compiler_Executable : Exécutable standard #PB_Compiler_Console : Exécutable console (Uniquement sur Windows, les autres OS utiliseront le format exécutable standard) #PB_Compiler_DLL : DLL (dynlib sur MacOS X et objet partagé sur Linux) #PB_Compiler_Date : La date actuelle, au moment de la compilation, au format date PureBasic. #PB_Compiler_File : Chemin complet et nom du fichier en cours de compilation, utile pour debogguer. #PB_Compiler_FilePath : Chemin complet du fichier en cours de compilation, utile pour debogguer. #PB_Compiler_Line : Numéro de la ligne du fichier en cours de compilation, utile pour debogguer. #PB_Compiler_Procedure: Nom de la procédure actuelle, si la ligne est à l'intérieur d'une procédure. #PB_Compiler_Module : Nom du module courant, si la ligne est à l'intérieur d'un module. #PB_Compiler_Version : Version du compilateur, nombre entier sous la forme '420' pour la version 4.20. #PB_Compiler_Home : Chemin complet du répertoire PureBasic, utile pour localiser des fichiers inclus #PB_Compiler_Debugger : Egal à 1 si le débogueur est activé, égal 0 sinon. Quand un exécutable est créé, le débogueur est toujours désactivé (cette constante sera égale à 0). #PB_Compiler_Thread : Egal à 1 si l'exécutable est compilé en mode 'multi-threadé', égal à 0 sinon. #PB_Compiler_Unicode : Egal à 1 si l'exécutable est compilé en mode unicode, égal à 0 sinon. #PB_Compiler_LineNumbering : Egal à 1 si l'exécutable est compilé avec l'option 'Activer le numéro de ligne pour OnError', égal à 0 sinon. #PB_Compiler_InlineAssembly: Egal à 1 si l'exécutable est compilé avec l'option 'Activer l'assembleur en ligne', égal à 0 sinon. #PB_Compiler_EnableExplicit: Egal à 1 si l'exécutable est compilé en mode 'explicit', égal à 0 sinon. #PB_Compiler_IsMainFile : Egal à 1 si l'exécutable en cours de compilation est le fichier principal, égal à 0 sinon. #PB_Compiler_IsIncludeFile : Egal à 1 si l'exécutable en cours de compilation a été inclus par un autre fichier, égal à 0 sinon. #PB_Compiler_32Bit : Mis à 1 si le compilateur génère du code 32 bits, mis à 0 sinon. #PB_Compiler_64Bit : Mis à 1 si le compilateur génère du code 64 bits, mis à 0 sinon. #PB_Compiler_Optimizer: Mis à 1 si le compilateur génère du code optimisé, mis à 0 sinon. #PB_Compiler_DPIAware : Mis à 1 si le compilateur génère un exécutable compatible DPI, mis à 0 sinon.
Exemple
Compiler_FileSystem_and_System_Datas.pb