Détecter la plateforme MacIntel

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Produit : 4D 2004 · Plateforme : Mac

La commande 4D Gestalt ne fait pas la différence entre un PPC et un MacIntel.

Selon la documentation Apple, cette commande s'utilise avec le code "sysa" (Native Sys Architecture) :

code 4D
Sélectionnez
$LongInt_errorCode := Gestalt ("sysa"; $LongInt_returnValue)


$LongInt_returnValue devrait retourner '10' pour un MacIntel et '2' pour un PowerPC. Mais elle retourne '2' quelque soit le type de Mac.


La solution est d'utiliser la commande LANCER PROCESS EXTERNE pour exécuter la commande Applescript 'system attribute "sysa"' qui retourne la valeur attendue.

Voici un code exemple :

code 4D
Sélectionnez
C_TEXTE($Out)
C_TEXTE($In)
C_TEXTE($Erreur)
LANCER PROCESS EXTERNE("osascript -e 'system attribute \"sysa\" '";$In;$Out;$Erreur)


La commande retourne '10' pour un MacIntel et '2' pour un PowerPC, dans la variable de sortie $Out.

Documentation des commandes 4D :
   · Gestalt
   · LAUNCH EXTERNAL PROCESS

Documentation Apple :
   · Commande Gestalt et paramètres
   · Gestalt Manager
Extrait :
-------------------
System Architecture Selectors

Specify the native system architecture.

enum {
   gestaltSysArchitecture = 'sysa',
   gestalt68k = 1,
   gestaltPowerPC = 2,
   gestaltIntel = 10
};
-------------------

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2007 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.