00 Voix

Lazarus: Détecter le Système d'Exploitation (Compiler Switch)

Conseil de Delphiain | Dernière mise à jour le 29/04/2021 | Créé le 01/10/2020

Lors de l'écriture d'applications pour plusieurs systèmes d'exploitation utilisant Lazarus, il peut être nécessaire d'utiliser un code différent ou d'inclure différentes unités à certains moments en fonction du système d'exploitation actuel. Néanmoins, bien sûr, vous ne voulez pas ajuster le code encore et encore au système actuel sur lequel vous compilez. Nous aimerions avoir une solution pour utiliser le même code sur tous les systèmes, bien qu'il existe certaines parties dépendant du système.

Donc, dans cette astuce, je voudrais vous montrer un moyen de montrer au compilateur qu'un certain code ne devrait s'appliquer qu'à un système spécifique. Vous pouvez utiliser les directives du compilateur {$IFDEF}, {$ENDIF} ainsi que {$ELSE} pour cela.

Tout d'abord, jetez un œil à un petit exemple:

{$IFDEF WINDOWS}
   {$IFDEF WIN32}
      showmessage('32 Bit Windows');
   {$ENDIF}

   {$IFDEF WIN64}
      showmessage('64 Bit Windows');
   {$ENDIF} 
{$ELSE}
   showmessage('Pas de Windows.');
{$ENDIF}

Dans cet exemple, nous utilisons d'abord une condition IF pour vérifier si nous sommes sur un système Windows. Si tel est le cas, nous recherchons s'il s'agit d'un Windows 32 bits ou 64 bits et nous en alertons. Sinon, nous alertons un message indiquant qu'il ne s'agit pas de Windows.

Vous pouvez combiner les directives comme vous le souhaitez et vous pouvez les utiliser à l'endroit souhaité. Ainsi, vous pouvez non seulement rendre le code accessible pour un système spécifique, mais vous pouvez également définir ou omettre des unités dans la clause USES en fonction du système.

Liste des Directives du Système d'Exploitation

Dans ce tableau, j'ai répertorié les directives les plus importantes pour chaque système.

SystèmeDirective
Tous les systèmes Windows{$IFDEF WINDOWS}
Windows 32 Bit{$IFDEF WIN32}
Windows 64 Bit{$IFDEF WIN64}
Windows CE{$IFDEF WINCE}
Linux{$IFDEF LINUX}
Mac OS X{$IFDEF DARWIN}
Classic Macintosh{$IFDEF MAC}
OS2{$IFDEF OS2}
FreeBSD{$IFDEF FREEBSD}
NetBSD{$IFDEF NETBSD}
Amiga{$IFDEF AMIGA}
Atari{$IFDEF ATARI}
PalmOS{$IFDEF PALMOS}

Pour plus de directives, veuillez visiter Compiler Defines During Compilation (définitions du compilateur pendant la compilation) sur freepascal.org. Avec ces directives, vous pouvez par exemple détecter la CPU utilisée et bien d'autres choses.

RépondrePositifNégatif

Sur l’Auteur

AvatarL’auteur n’a pas encore ajouté de brève description de profil.
Voir Profil

 

Sujets Connexes

Changer la Date du Fichier

Tutoriel | 0 Commentaires

Quel est le meilleur système d'exploitation?

Vote en suspens | 6 Commentaires

Avis Important

Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.

Participer

Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.