IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Détection Mac et Windows 98


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Par défaut Détection Mac et Windows 98
    Bonjour

    Je suis nouveau en C++ et je souhaiterais détecter la version de Windows ou de Mac de mon application hôte (XP, 98, OSx 10 , OSx 9..).

    Un début de code est :
    #ifdef WINDOWS

    #elseif MACINTOSH

    #endif

    Merci pour toutes réponses

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Quand j'ai besoin de savoir ce genre de choses, je regarde dans le code de bibliothèques portables.
    Mais pourquoi veux-tu faire cela ? N'y a-t-il pas déjà une biblio portable qui rend le service que tu cherches à implémenter ?

    Accessoirement, en général ce sont des infos sur les compilos que l'on obtient de la sorte. Sur les versions d'OS, j'en suis moins sûr surtout que l'on fait régulièrement dans la cross compil' (compilé sous NT, exécuté sous XP, ...)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Luc Hermitte
    Quand j'ai besoin de savoir ce genre de choses, je regarde dans le code de bibliothèques portables.
    Mais pourquoi veux-tu faire cela ? N'y a-t-il pas déjà une biblio portable qui rend le service que tu cherches à implémenter ?
    Et quand il n'y en a pas, ou qu'elles sont trop lourdes à mettre en oeuvre, j'ai tendance à organiser le code comme une bibliothèque portable: interface qui ne dépend en rien de l'OS (elle n'inclu même pas les fichiers propres à l'OS), implémentation propre à l'OS. Et alors avoir un fichier d'implémentation par OS ou par famille d'OS (POSIX) est souvent mieux que de faire de la compilation conditionnelle.

    C'est le système de build qui gère donc cela -- comme il est de toute façon obligé de gérer d'autres choses propres à l'environnement comme le nom des compilateurs et la manière de leur passer les options. S'il le faut le système de build peut fournir des define propres à l'OS aussi; mais le besoin est généralement signe que l'organisation pourrait être améliorée.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Par défaut
    Une bibliothèque potrable est un .h non ?

    Le but de mon projet est de créer un Xtra Director qui détecte l'OS de l'application hôte.

    Auriez-vous une idée comment l'implémenter et quelles bibliothèques utilisées ?

  5. #5
    Membre éclairé Avatar de Higestromm
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    516
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 516
    Par défaut
    Citation Envoyé par MABB
    Une bibliothèque potrable est un .h non ?

    Le but de mon projet est de créer un Xtra Director qui détecte l'OS de l'application hôte.

    Auriez-vous une idée comment l'implémenter et quelles bibliothèques utilisées ?
    Le code que tu nous montre ne détecte pas l'application Hote. Il s'agi de conditions fournit au compilateur.

    En gros, pendant la compilation il ne s'occupera que de la partie windows ou mac suivant le systeme d'exploitation sur lequel tu compile. Mais a l'éxecution, cette condition n'existera plus... (je ne sais pas si je suis très clair la) :/

    Une bibliotheque portable est une bibliotheque comme Boost qui peux etre utiliser sur nimporte quel systeme sans avoir a changer ton code a toi.

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Par défaut
    Entendu pour les bibliothèques portables bien que je débute et ne connaîs pas Boost et autres

    Pour ma détection, en fait si je fait

    #ifdef WINDOWS
    maversion = "Win"
    // test pour savoir si XP, 98 ou 95
    #elseif MACINTOSH
    maversion = "Mac"
    #endif

    Est-ce qu'en renvoyant maversion à mon application, le code me retournera maversion ou c'est simplement le compilateur VC++ qui en fonctionnant sous Windows ne traîtera que la partie WINDOWS et réciproquement pour MAC ?

  7. #7
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par MABB
    Bonjour

    Je suis nouveau en C++ et je souhaiterais détecter la version de Windows ou de Mac de mon application hôte (XP, 98, OSx 10 , OSx 9..).

    Un début de code est :
    #ifdef WINDOWS

    #elseif MACINTOSH

    #endif

    Merci pour toutes réponses

    les macros prédéfinies par gcc sous Mac OS X sont

    _ _APPLE_ _
    si définie == vous compilez avec gcc sous Mac OS X

    _ _APPLE_CC_ _
    == la build version de gcc (exemple 5363)

    __GNUC__
    == le major de la version de gcc (exemple 4)

    __VERSION__
    == le texte complet de la version de gcc (exemple "4.0.1 (Apple Computer, Inc. build 5363)" )

    si votre code dépend de l'endianness des données vous aurez aussi besoin des define suivants :

    __BIG_ENDIAN__
    __LITTLE_ENDIAN__

    si vous compilez pour Intel
    __i386__ sera défini
    si vous compilez pour PowerPC
    __ppc__ sera défini


    pour avoir toutes les macros définies avec gcc (sous n'importe quel OS):
    touch foo.h ; cpp -dM foo.h

  8. #8
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Toutes ces infos sont là :
    http://predef.sourceforge.net

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 120
    Par défaut
    Merci Laurent pour le lien
    Merci aussi à JeitEmgie pour la piste des macros

    mais en tant que débutant je ne sais pas utiliser les macros

    Je vais essayer de me renseigner

Discussions similaires

  1. [WB17] Détection Système Exploitation Windows ou Mac
    Par tveniere dans le forum WebDev
    Réponses: 1
    Dernier message: 03/03/2015, 10h35
  2. Disque dur MAC sous Windows
    Par black is beautiful dans le forum Composants
    Réponses: 6
    Dernier message: 09/07/2008, 20h06
  3. [OS] Mac et Windows
    Par Pascal26 dans le forum Apple
    Réponses: 1
    Dernier message: 30/10/2007, 15h31
  4. Macs With Windows
    Par ArHacKnIdE dans le forum Apple
    Réponses: 29
    Dernier message: 26/01/2007, 20h30
  5. trouver l'adresse MAC sous Windows 95
    Par seiryujay dans le forum Développement
    Réponses: 4
    Dernier message: 03/05/2004, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo