Bonjour,
Merci pour la réponse ... je ne connaissais pas "Dependency Walker" et c'est un super outil ...
J'ai réussi à récupérer toutes les fonctions qui étaient dans ma DLL et je les ai déclaré dans un module VB. C'est extra ... à l'aide du fichier ".h" j'ai également pu voir comment les déclarer ... ...
Maintenant je suis un peu embêté car je n'arrive malheureusement pas à utiliser une fonction qui est présente dans ma DLL.
La fonction en question est la suivante : CP210x_GetDevicePid
Voici le code :
Déclaration :
Public Declare Function CP210x_GetDevicePid Lib "CP210xManufacturing.dll" (ByVal cyHandle As Long, lpwPid As Long) As Integer
Utilisation :
CP210x_STATUS = CP210x_GetDevicePid(hUSBDevice, lpwPid)
Résultat : CP210x_STATUS = 1 ce qui signifie que j'ai une erreur "Invalid Handle"
Pour que STATUS soit à succès il faudrait qu'il soit à la valeur "0".
J'ai fait quelques autres tests avec des autres fonctions que la DLL me propose et j'arrive à des choses positives comme par exemple :
Déclaration :
Public Declare Function CP210x_GetProductString Lib "CP210xManufacturing.dll" (ByVal dwDeviceNum As Long, ByRef lpvDeviceString As Byte, ByVal dwFlags As Long) As Integer
Utilisation :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Private Function GetDeviceList() As Boolean
'device number, device string, and temp var newdevstring
Dim DevNum As Long
Dim DevStr(CP210x_MAX_DEVICE_STRLEN) As Byte
Dim NewDevStr As String
Dim i As Integer
Dim P0
'Effacement de la zone de liste déroulante contenant les noms des périphériques connectés
zdld_peripheriqueUsb.Clear
'Détermine le nombre de périphériques connectés
CP210x_STATUS = CP210x_GetNumDevices(DevNum)
'CP210x_STATUS = CP210x_GetNumDevices(DevNum)
'Si on trouve un périphérique on recherche son nom pour l'afficher dans la zone de liste déroulante
If CP210x_STATUS = CP210x_SUCCESS Then
For i = 0 To (DevNum - 1)
CP210x_STATUS = CP210x_GetProductString(i, DevStr(0), CP210x_RETURN_SERIAL_NUMBER)
NewDevStr = ConvertToVBString(DevStr)
zdld_peripheriqueUsb.AddItem NewDevStr, i
Next
zdld_peripheriqueUsb.ListIndex = 0 'then set combo list to first item
GetDeviceList = True 'return true since we found hardware
Else
zdld_peripheriqueUsb.ListIndex = -1 'otherwise set list to -1
GetDeviceList = False 'return false and close since we didnt
End If 'find hardware
End Function |
Résultat : NewDevStr = 0001 --> Qui est bien le nom du produit que j'utilise
... Est-ce que vous auriez des idées concernant mon problème qui est "Comment puis-je utiliser : "CP210x_GetDevicePid"" ?
Merci beaucoup pour votre aide ... ... comme je vous l'ai dit dans mon premier poste, je débute et j'ai un peu de mal ...
Partager