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

MFC Discussion :

A propos de __int64


Sujet :

MFC

Vue hybride

adel_dz A propos de __int64 04/04/2006, 13h16
Invité VC6 et VC7 ne compilent que... 04/04/2006, 15h26
BainE houla, __int64 c'est du... 04/04/2006, 16h32
adel_dz Oui mais une archtecture 64... 05/04/2006, 13h46
Aurelien.Regat-Barrel Tu mélanges les types C++ et... 05/04/2006, 14h20
Aurelien.Regat-Barrel Au passage SetFilePointerEx... 05/04/2006, 14h26
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 49
    Par défaut A propos de __int64
    Salut a tous.
    Je deteste la fontion SetFilePointerEx de api windows. on se croirait revenir au du DOS avec l'int21. Cette diviser l'offset en 2 est vraiment laide. pourquoi ne pas utilser un __int64? ceci nous ramene a ma (ou mes)
    question (s):
    1-est ce que l'entier __int64 est portable?
    2-est it reconnu par le standard? ma version du draft est assez ancienne.
    3-est it implementer correctement par l'os ou c'est le compilteur qui par qlq tours de passe-passe le traduit convenablement. est si c'est le cas comment ce fait-il que l'on arrive a produire des prog ayant 386 pout cible en utilsant un __int64 dans le source.

    merci

  2. #2
    mat.M
    Invité(e)
    Par défaut
    VC6 et VC7 ne compilent que du code spécifique 386 !
    aussi _int64 je ne l'utiliserais pas trop à moins d'avoir recours à des #if ...#endif , détecter le type d'OS de CPU....

    Microsoft Specific —>

    Microsoft C/C++ features support for sized integer types. You can declare 8-, 16-, 32-, or 64-bit integer variables by using the __intn type specifier, where n is 8, 16, 32, or 64.

    The following example declares one variable for each of these types of sized integers:

    __int64 nHuge; // Declares 64-bit integer
    The __int64 type has no ANSI equivalent.

    C++ Specific —>



  3. #3
    Membre éprouvé Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Par défaut
    houla, __int64 c'est du PetitMou uniquement, on trouve en equivalance du "long long", et autre chose selon les OS...

    Tant qu'on ne sera pas en architecture 64bits ca n'existera pas et chaque compilo le gerera a sa maniere a lui...

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2003
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 49
    Par défaut
    Citation Envoyé par BainE
    houla, __int64 c'est du PetitMou uniquement, on trouve en equivalance du "long long", et autre chose selon les OS...

    Tant qu'on ne sera pas en architecture 64bits ca n'existera pas et chaque compilo le gerera a sa maniere a lui...
    Oui mais une archtecture 64 bits n'est en rapport que'avec la taille des pointers et non celle des entiers. Notez quend meme que je connais au mois 2 compileurs que re connaissent: Borland et intel
    ensuite la definition du LONGLONG ne depend en aucun cas du win64

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #if !defined(_M_IX86)
     typedef __int64 LONGLONG; 
    #else
     typedef double LONGLONG;
    #endif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Values for _M_IX86
     
    Blend _M_IX86 = 600 
    Pentium _M_IX86 = 500 
    Pentium Pro, Pentium II, and Pentium III _M_IX86 = 600 
    80386  _M_IX86 = 300 
    80486  _M_IX86 = 400
    a+

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Tu mélanges les types C++ et les types Win32/spécifiques VC++. long long c'est C/C++, LONGLONG c'est Win32 et __int64 est spécifique au compilateur (comme tous les symboles qui commencent par un underscore).

  6. #6
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Au passage SetFilePointerEx accepte un LARGE_INTEGER qui est utilisable en tant que LONGLONG, soit en tant que __int64.

Discussions similaires

  1. A propos de Last_insert_id
    Par f-demu01 dans le forum Administration
    Réponses: 2
    Dernier message: 26/03/2003, 08h32
  2. A propos depth buffer
    Par j.yves dans le forum DirectX
    Réponses: 1
    Dernier message: 03/12/2002, 00h41
  3. A propos des modèles d'objet (avec sources)
    Par DevX dans le forum C++Builder
    Réponses: 14
    Dernier message: 01/12/2002, 12h22
  4. Fonctionnement de la compression DivX
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 20/09/2002, 14h10
  5. A propos du composant DBGrid
    Par _Rico_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/07/2002, 09h18

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