Soucis

Résolu
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011 - 22 août 2008 à 18:57
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 23 août 2008 à 21:43
Bonjour,

sachant que idVendor:0x0256 = &H256
idProduct:0x0789 = &H789
A votre avis que me donne ??? :
idVendor:0xFFFF
idProduct:0xFFFF

Merci d'avance

41 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 01:21
je ne t'ai qu'à moitié répondu LIBRE_MAX ^^
(quoi que)

j' ai copié la valeur BackColor (Blanc) = &H00FFFFFF&
En passant à la ligne (Enter) ma valeur devient 16777215
expliqué

J' ai refait la même chose sur une autre ligne mais j' ai tapé
Const D =&H00FFFFFF&
Retour à la ligne et ça devient
Const D = &HFFFFFF

en tapant ta constante, comme indiqué, VB va enlever les 0 inutiles
donc on pas de
&H00FFFFFF&
à
&HFFFFFF&

le & de droite est pour signaler le LONG (expliqué aussi, c'est aussi ce que casy disait ; pour éviter les problèmes de type)
or &HFFFFFF& est forcément supérieur à la plus grande valeur de l'INTEGER.
étant donc LONG, pas d'ambiguïté, l'IDE fait sauter ce dernier &
même en l'ajoutant manuellement, il sera supprimé
idem pour tout à l'heure, en décimal uniquement cette fois-ci :
Private Const idOther2 As Long  = 65535
normal puisque 65535 est aussi forcément un long, supérieur à 32767

aucune idée par contre sur le pourquoi du '&HFF&' accepté/conservé
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 01:45
j' ai les neurones qui chauffent, mais je suis de plus en plus moins c..
Alors je tente une explication :
Si la valeur de &HFF est inférieure à integer, placé devant une const avec & en dernier, celle-ci sera de type long en dépit de sa valeur.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 02:12
si la valeur de &HXX (pas FF) est, au final, un entier, le fait d'ajouter & l'en rendra long oui
mais il ne faut pas confondre avec le fait de déjà typer la constante
const C as long= 2
2 est integer par défaut, C sera quand même long, mais çà oblige une conversion à VB pour rien. c'est pourquoi on mettra plutôt
const C as long=2&

voir premier message :
par exemple le type (vartype) de 10 retournera un integer(2), contre 10& qui retournera un long(3)

Option Explicit

Private Sub Form_Load()
    MsgBox "'&HB20' -> " & GetStrType(VarType(&HB20)) & vbCrLf & _
           "'&HB20&' -> " & GetStrType(VarType(&HB20&))

    Dim v1, v2
    v1  = &HB20
    v2 = &HB20&
  
    MsgBox "'v1' -> " & GetStrType(VarType(v1)) & vbCrLf & _
           "'v2' -> " & GetStrType(VarType(v2))
    
    Unload Me
End Sub

Function GetStrType(ByVal l As Long) As String
    If l = vbInteger Then
        GetStrType = "INTEGER"
    ElseIf l = vbLong Then
        GetStrType = "LONG"
    Else
        GetStrType = "????"
    End If
End Function

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 02:17
Option Explicit


Const C = &HFF&
Const D = &HFF


Private Sub Form_Load()
 
MsgBox C & " : " & D & " - " & TypeName(C) & " / " & TypeName(D)
 
'Resultat > 255 : 255 - Long / Integer
End Sub





<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0

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

Posez votre question
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 02:19
posts croisés !
j' était sur le même truc et ça se confirme.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 02:22
mais j' ai compris le fait de déjà typer la constante
const C as long=2

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 02:24
typename...., j'aime bien m'embêter pour rien moi

oui, à savoir que comme C et D ne sont pas typées, elles sont en Variant. pour çà que le & change cette valeur (type)
tout comme dans mon exemple au dessus

déclare C et D as long, le & n'altèrera pas

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 02:25
croisés en beauté oui ^^
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 02:38
... et avec ton test je vois pourquoi VB accepte &HFFFF&, c'est un ENTIER non-signé. donc en hexa on ne partira pas sur un entier jusqu'à 32767 mais bien 65535

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 02:39
En tout cas Merci PCPT pour ce précieux cours et à un prochain.Je l' espère
Bonne fin de soirée.

<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 05:53
Eh bien merci beaucoup pour votre aide, je vais donc essayer ceci :

Dim Address As Integer
Address = &hFFFF

Dim Address As Long
Address = &h0FFFF

Dim Address As Long
Address = &h0FFFF&
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 06:03
'idOther:0xFFFF

Private Const 
idOther1 
As Long 

&HFFFF&


Private Const 
idOther2 
As Long 

65535
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 17:39
Bonjour à tous et encore merci pour l'aide apportée ca marche impec, il me reste qu'un petit soucis en déclarant toute vos informations comme ceci si je connecte le peripherique :VID&H45E& PID&H284& celui ci est introuvable alors que si je connecte le peripherique: VID&HFFFF& PID&HFFFF& est trouvé sans aucun probleme. ou ce trouve l'erreur ?

'idVendor:0x0256
Private Const VendorID1 As Long = &H45E&
Private Const VendorID2 As Long = &HFFFF&
Private Const VendorID3 As Long = &H40B&
'idProduct:0x0789
Private Const ProductID1 As Long = &H284&
Private Const ProductID2 As Long = &HFFFF&
Private Const ProductID3 As Long = &H6521&

Private Const VendorID = VendorID1 or VendorID2 Or VendorID3
Private Const ProductID = ProductID1 or ProductID2 Or ProductID3
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 17:54
tu l'inventes de où ton OR? pour quelle occasion? dasn quel but?

petite explication sur cette page :
http://www.vbfrance.com/infomsg_TRADUIT-ENCOR-TRUC-FLASH-VB6-SVPLE-QUESTION-OPTIMISEE_1189090.aspx?p=2

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
23 août 2008 à 18:02
Private Const VendorID = VendorID1 or VendorID2 Or VendorID3 
soit                       &H45E   or   &HFFFF  or   &H40B     = &HFFFF

Private Const ProductID = ProductID1 or ProductID2 Or ProductID3
soit                        &H284    or    &HFFFF  or   &H6521   = &HFFFF

c'est donc bien le périphérique VID&HFFFF / PID&HFFFFqui est attendu

Pour rappel, Or est l'opérateur du Ou Logique

Lorsque tu fait un Or entre deux valeurs chacun des bits de chacune des valeurs est analysé. Si au moins un des 2 bits est égal à 1 alors le bit correspond du résultat sera égal à 1 sinon il est égal à 0

par exemple pour le VID :
&H45E  ==> 0000010001011110 en binaire
&HFFFF ==> 1111111111111111 en binaire
&H40B  ==> 0000010000001011 en binaire
--------------------------------------
           1111111111111111

Si tu analyse les bits colonne par colonne tu vois bien que le résultat est 1111111111111111 soit &HFFFF

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 18:35
comment dois je faire si par exemple je veus indiquer que BB est egal a VendorID1 ou VendorID2 ou VendorID3 ce qui dependras de la peripherique connecté ?
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
23 août 2008 à 20:11
Salut,
Dans ce cas pourquoi ne pas utiliser une variable au lieu d' une Const.On pourras alors lui affecter le résultat d' une fonction. <hr />... Y'en a même qui disent qu'ils l'ont vu voler.
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 20:17
Yesss parfait grace a vous, merci merci encors. VIVE LES ADMIS ET TOUS LES MEMBRES DE CE FORUM.
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
23 août 2008 à 20:39
ps : pense à valider la ou les réponses qui t'on permis... (blablabla)
0
marty14 Messages postés 104 Date d'inscription lundi 21 août 2006 Statut Membre Dernière intervention 29 mai 2011
23 août 2008 à 21:23
il me semble que c'est deja fait !
0
Rejoignez-nous