Bonjour,
J'ai une DLL dont les paramètres sont exprimés en UInt32 et UInt64
Par quelle déclaration Delphi je peux remplacer ces deux paramètres ?
Merci d'avance
Bonjour,
J'ai une DLL dont les paramètres sont exprimés en UInt32 et UInt64
Par quelle déclaration Delphi je peux remplacer ces deux paramètres ?
Merci d'avance
Euh, comment dire avec UInt32 et UInt64
Il est vrai que l'on utilise rarement ces alias, j'ai partiellement du UInt64 en 2007, rien du tout en 6
UInt32 = Cardinal
UInt64, euh ça n'existe pas vraiment puisqu'en interne c'est int64 et donc c'est signé !
En 2007 le TULargeInteger, c'est l'équivalent du ULARGE_INTEGER des API Windows est déclaré en LONGLONG (int64) et non en ULONGLONG
En XE2, il est bien en ULONGLONG, on peut penser qu'il y a eu du travail sur le compilateur pour gérer les nombres de 64bits non signé !
Faut tester si il accepte ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var I: UInt64; begin I := 1 shl 62; // 2^62 ShowMessage(IntToStr(I)); I := I shl 1; // 2^63 ShowMessage(IntToStr(I)); // si négatif, c'est mort ! Inc(I); ShowMessage(IntToStr(I)); Dec(I, 2); ShowMessage(IntToStr(I)); end;
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Trouvé dans une unité qui accompagne l'exploitation d'une DLL :
ça peut servir
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 uses Classes; {$MINENUMSIZE 4} type UINT8 = System.Byte; UINT16 = System.Word; UINT32 = System.Longword; {$IFNDEF UINT64} UINT64 = System.INT64; {$ENDIF} INT16 = System.Smallint; INT32 = System.Longint; INT64 = System.INT64; TUINT32Array = array of UINT32; PUINT32 = ^UINT32; PBYTE = ^byte;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager