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

Free Pascal Discussion :

[2.0.2] Connaître le système d'exploitation [Free Pascal]


Sujet :

Free Pascal

  1. #1
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut [2.0.2] Connaître le système d'exploitation
    Bonsoir,

    Voilà malgré des recherches sur Google et sur developpez.net même, jje n'ai trouvé aucune information sur l'existence éventuelle d'une fonction ou d'une constante permettant de savoir si le programme est lancé sur Linux ou sur Win32

    En fai, j'ai remarqué que wherex, wherey de l'unité crt (/wincrt) ne se comportent pas de la même façon sur win ou sur nux...Pour un projet console ou je convertis werex et wherey en coordonnées, elles sont correctes sur linux mais pas sur windows ou du moins pas entièrement.


    Donc est-il possible de connaitre le nom de l'os? ou de palier a ce problème?

    merci

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Par défaut
    Tu cherches sans doute des directives de compilation ( $IFDEF )... je te laisse lire la documentation à ce sujet.
    Un programme compilé pour linux ne se lançant pas sous windows, et inversement, tu devras de toute façon compiler une version pour chaque OS.

  3. #3
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut
    bonjour,

    merci pour ta réponse mais je sais évidemment que je devrais le compiler pour chaque OS.
    MMh apparemment après un peu de révision ce n'est pas wherex, et wherey qui sont différents mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            		  pos_y := round(wherey/2) - 3;
    				  pos_x := round(wherex/4) - 8;
    sachant que pos_y,pos_x sont des entiers,

    pos_x et pos_y n'ont pas la même valeur quand le code est compilé sous linux que sous windows pourquoi? tout en sachant que wherex et wherey sont égaux sur Linux et sur Windows

    cela viendrait du round?

  4. #4
    Membre émérite Avatar de Tuxico
    Profil pro
    Étudiant
    Inscrit en
    Août 2003
    Messages
    662
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2003
    Messages : 662
    Par défaut
    non ca va, c'est résolu

    je viens de me rendre compte de l'inutilité de mon round(), simplement rempalcé "/" par div


    à force de faire du java, j'en oublie les bases du pascal


    merci

  5. #5
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    Bonjour,

    n'oublie pas que round s'applique à des types real

    Arrondir un entier n'a pas de sens


    @+++

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 962
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 962
    Par défaut
    Hoe,
    Citation Envoyé par Tux++ Voir le message
    Bonjour,

    n'oublie pas que round s'applique à des types real

    Arrondir un entier n'a pas de sens


    @+++
    Mais son calcul donnait un réel.

    En Pascal, la division a/b donne toujours un réel, quels que soient les types de a et b.

    Le Round était donc parfaitement justifié.

    La différence entre Windows et Linux montre que FP ne fait pas ma même chose selon le système, et je trouve ça plutôt gênant.

  7. #7
    Membre expérimenté Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Par défaut
    @Droggo, oui mais lui pensait que son '/' équivalait au div pascal alors que c'est une division réelle donc dans le cas d'un DIV, le round est inutile

    Apparemment le round() sous win32 round() linux/unix -1

    c'est en effet assez étrange

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Commet créer un Système d'exploitation ?
    Par reggae dans le forum Langages de programmation
    Réponses: 31
    Dernier message: 25/07/2013, 11h54
  2. [Winxp] Installer un deuxième système d'exploitation
    Par goma771 dans le forum Windows XP
    Réponses: 15
    Dernier message: 30/11/2005, 23h12
  3. choisir le système d'exploitation à amorcer
    Par mouloudéen dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 30/06/2005, 09h11
  4. Réponses: 4
    Dernier message: 26/06/2005, 23h28

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