DWORD et VB6

Résolu
DerWanderer Messages postés 9 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 novembre 2006 - 29 août 2006 à 14:03
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 30 août 2006 à 09:36
Bonjour,

J'ai besoin de vos lumières

dans un programme de jeu, les caractéristiques d'un matériels sont stockée dans deux DWORD non signés, chaque bit selon qu'il est à 0 ou à 1signifie qu'un élément specifique est associé au matériel
donc pour moi hop on fait correspondre le DWORD a un long
J'ai bien sur écrit dans les déclaration de mon module principal
pour chaque caracteristique
public const EST_HEUREUX=&H1
......
public const MOUVEMENT_LENT=&H8000
public const PEUT_CONDUIRE=&H8000000

dans une sub je déclare
dim toto as long

if (DWORD AND MOVEMENT_LENT) = MOVEMENT_LENT then ' la caractéristique est vrai pour l'équipement
   code à derouler
end if

problème sous VB &H8000 = -32768 et non pas 32768
et je ne peux pas valider ma caractéristique

soit il y a une astuce que je ne connais pas, soit il faut que je réécrive une partie de mon code pour créer un tableau de vrai/faux correspondant à chaque bit du DWORD.

J'espère êter clair

Der Wanderer

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 août 2006 à 14:24
Oui VB a tendance à se mélanger avec les constantes.

Pour les constantes long en hexa <65536 il faut lui dire que c'est une dévlaration en long en rajoutant un signe & après le code hexa.

public const MOUVEMENT_LENT= &H8000 &

---- Sevyc64  (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 août 2006 à 14:30
pour ton test, tu as possibilité de faire aussi :

If CBool (DWORD AND MOVEMENT_LENT)  Then
    '# code à derouler
End If

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
DerWanderer Messages postés 9 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 novembre 2006
29 août 2006 à 21:38
Oui mais petit problème pour &H80000000 !!

Der WanderLost( pas la série )
0
DerWanderer Messages postés 9 Date d'inscription lundi 26 juin 2006 Statut Membre Dernière intervention 18 novembre 2006
29 août 2006 à 22:21
Oui ca marche,

le bit a bit c'est marrant -32768=32768

Merci

Der Wanderer
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 août 2006 à 09:36
c'est là tout la nuance entre nombres signés et non signés ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Rejoignez-nous