begin process at 2012 05 30 06:58:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

QuadPart : C'est quoi t'est-ce ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

QuadPart : C'est quoi t'est-ce ?

mardi 3 novembre 2009 à 17:42:01 | QuadPart : C'est quoi t'est-ce ?

jack

Administrateur CodeS-SourceS
Salut à tou(te)s
Je suis plus habitué du forum VBFrance et j'ai un souci de lecture d'un programme en C++ (que j'aimerai reproduire en VB).

Ma question : Dans ce programme, je vois cette ligne :
Code Visual Basic :
pRawData->Time = pObject->PerfTime.QuadPart;

Sachant que PerfTime est défini dans la structure comme un LARGE_INTEGER.
(c'est bien 2 fois 4 octets ? parce qu'avec les changements de dénomination en VB6 et .Net, j'ai des doutes)

Alors voilà, que représente ce .QuadPart ?
Est-ce que ça n'extrait qu'une partie de cet entier ? (poids faible ou fort)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mardi 3 novembre 2009 à 20:03:47 | Re : QuadPart : C'est quoi t'est-ce ?

ghuysmans99

Membre Club
Je pense que ça prend les deux int qui composent la structure pour former un int64 ... A confirmer.
---
VB.NET is good ... VB6 is better
mercredi 4 novembre 2009 à 00:50:05 | Re : QuadPart : C'est quoi t'est-ce ?

jack

Administrateur CodeS-SourceS
Merci
Tu es partout, toi ...
Je vais attendre la confirmation.

J'ai un doute, d'un coup : La syntaxe de mon instruction mystère, est-elle bien du C++ ?
mercredi 4 novembre 2009 à 08:59:29 | Re : QuadPart : C'est quoi t'est-ce ?

louis14

Bonjour,

Voilà ce qu'on trouve dans MSDN:
<<
typedef union _LARGE_INTEGER { struct { DWORD LowPart; LONG HighPart; }; LONGLONG QuadPart; // In Visual C++, a typedef to _ _int64} LARGE_INTEGER;

This union allows C++ programmers to use the structure part if their compiler doesn’t support 64-bit integers, or to use the LONGLONG part if it does. There are no unions in Basic, so the closest you can get is the following type:

Type LARGE_INTEGER LowPart As Long HighPart As LongEnd Type
>>


louis14
mercredi 4 novembre 2009 à 10:44:27 | Re : QuadPart : C'est quoi t'est-ce ?

jack

Administrateur CodeS-SourceS
Merci Louis14
(14:Calvados ? moi 76)

Donc, Ok, cela confirme que les Long dont on parle sont bien des 32 bits et que, par conséquence, un LARGE_INTEGER est un 64 bits.
Mais cela ne me donne pas d'indication sur la fonction que représente QuadPart.
D'après la ligne MSDN que tu m'offres, est-ce que la syntaxe veut dire qu'un LARGE_INTEGER est une déclaration équivalente à LONGLONG.QuadPart ?

(excuse ma lourdeur, mais je ne suis pas habitué aux syntaxes C++)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
mercredi 4 novembre 2009 à 10:45:52 | Re : QuadPart : C'est quoi t'est-ce ?

fregolo52

Membre Club
salut,

A priori, la syntaxe est bonne.
LONGLONG est un __int64. (donc en .NET, c'est un Long)
Donc, Time doit aussi être un entier 64bit.



mercredi 4 novembre 2009 à 10:50:47 | Re : QuadPart : C'est quoi t'est-ce ?

fregolo52

Membre Club
Réponse acceptée !
Oups, tu as répondu entre temps :)

LARGE_INTEGER et LONGLONG c'est "la même chose", ou plutôt ça représente un entier 64bit.

LONGLONG : tu attaques direct ton 64bit.
LARGE_INTEGER : tu permets d'avoir les 2 octets de poids fort et de poids faible. Ca doit servir pour des vieux programmes fait avec VB6 ou VC++ 6.

Tu as inversé :
LONGLONG c'est LARGE_INTEGER.QuadPart
mercredi 4 novembre 2009 à 10:59:50 | Re : QuadPart : C'est quoi t'est-ce ?

fregolo52

Membre Club
re oups,
il faut lire :
LARGE_INTEGER : tu permets d'avoir les 4 octets de poids fort et 4 octets de poids faible.
mercredi 4 novembre 2009 à 11:34:42 | Re : QuadPart : C'est quoi t'est-ce ?

jack

Administrateur CodeS-SourceS
Aïe
Si un LARGE_INTEGER est composé de 2 x 4 octets, c'est donc un 32 bits, non ?

Est-ce que, comme les LONG sont passés de 4 à 8 octets en .Net, il faut comprendre qu'un LARGE_INTEGER est un 2 x 8 octets ?
mercredi 4 novembre 2009 à 15:21:24 | Re : QuadPart : C'est quoi t'est-ce ?

fregolo52

Membre Club
Jack tu es mal réveillé comme moi
2 x 4 octets = 2 x 4 x 8 = 64bit

Pour avoir bossé sur des OS 64bit (Windows et Linux), le long est super chiant à gérer.
On a eu une belle surprise quand on a fait communiquer un Windows avec un Linux x64.
Pour résumer :
Pour framework .NET et JRE : long = 8 octets
Pour les applis native Windows x86 ou x64 : long = 4 octet
Pour les applis natives Linux x86 : long = 4 octets
Pour les applis natives Linux x64 : long = 8 octets

Donc quand on travaille avec des long faut faire super gaffe aux environnements.

1 2

Cette discussion est classée dans : programme, vb, code, color, quadpart


Répondre à ce message

Sujets en rapport avec ce message

arreter un autre programme !!! [ par FLOPPY ] je cherche un code en C qui permet de stopper un programme (autre que le mien) charger en memoire (si possible avec le code d'erreur que cette fonctio comment convertir un programme vb utilisant une api en porgramme c++ ?? [ par morgandetoi06 ] bonjour, j ai trouvé sur www.vbfrance.com cette source qui permet de modifier le pseudo sur msn messnger :Dim aDim MSN As New MsgrObjectPrivate Sub co au secccoooouuuuuurrrrr protection d'un programme [ par zorque ] je suis entraint de faire un programmeet je voudrais le proteger comme les sharwarescomment faire pour ke le programme debloque les option si l'utilis récupérer code assembleur [ par none77 ] Bonjour,j'aimerai savoir si lorsque je programme en C il m'est possible de récupérer le code assembleur automatiquement.Je demande ca car je dois util [HOOK]Encore le meme probleme.. [ par bdkiller ] Salut,Bon, après pas mal d'heures passés là-dessus, j'ai la DLL qui se compile sans erreurs, l'appli principale qui se compile sans erreurs également! Aidez moi programme sur des liens hypertexes et ... [ par borower ] BonjoursJe suis un debutant et je n'arrive pas a mettre en forme un code convenable pour un programme.Je recherche le code source d'un programme en C Gestion de la mémoire ! [ par ZogStriP ] Je voudrais savoir si il existe un programme ou une fonction (qui marche sous windows XP) qui me permettrais de savoir exactement combien d'espace pre Graphisme pour débutant en C avec VB 6.0 [ par Ben0007 ] Hello,J'ai écrit un petit programme en C pour faire évoluer une proie et un prédateur sur un grand échiquier (du moins au début je me contente de ça), !!!! UNTIL !!!!! [ par ZogStriP ] Je voudrais traduire un programme VB en C++ mais ce programme contient une partie :Do(..)Loop Until(l == j)et je n'arrive pas à la transformer en C++ [C] Interdire l'accès à certaines touches [ par Cow_B ] SalutBon, cette fois ci mon souci est le suivant : je demande à un utilisateur de rentrer un chiffre kelkil soit. Le problème c'est que si la personne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,998 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales