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) :
$LongInt_errorCode
:=
Gestalt (
"sysa"
;
$LongInt_returnValue
)
$LongInt_returnValue
devrait retourner '10' pour un MacIntel et '2' pour un PowerPC.
Mais elle retourne '2' quel que 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 :
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
};
-------------------