Salut à tous ! J'ai déjà adapté des SDKs de divers hardwares pour WD / WD Mobile, mais là, je suis coincé, impossible de progresser et j'aurai besoin d'aide. Il vient avec plusieurs exemples en C, C++, etc, mais les informations sont contradictoires et le résultat "cacastrophique". Pour l'instant, j'ai juste besoin de communiquer avec la DLL et récupérer les détails sur le hardware connecté. Je suppose que si j'arrive à faire fonctionner cela, je pourrais me débrouiller avec le reste. En C : struct tagWacomGSS_UsbDeviceBase_v1 { uint16_t idVendor; uint16_t idProduct; uint16_t bcdDevice; }; #if defined(WacomGSS_WIN32) struct tagWacomGSS_UsbDevice_v1 { struct tagWacomGSS_UsbDeviceBase_v1 usbDevice; // pad[2] char * fileName; char * bulkFileName; }; struct tagWacomGSS_UsbDevice_v1_wc { struct tagWacomGSS_UsbDeviceBase_v1 usbDevice; // pad[2] wchar_t * fileName; wchar_t * bulkFileName; }; typedef struct tagWacomGSS_UsbDevice_v1 WacomGSS_UsbDevice; typedef struct tagWacomGSS_UsbDevice_v1_wc WacomGSS_UsbDevice_wc; Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! En WD : ST_UsbDeviceBase_v1 est une Structure nIdVendor est un entier sans signe sur 2 octets nIdProduct est un entier sans signe sur 2 octets nBcdDevice est un entier sans signe sur 2 octets FIN ST_UsbDevice_v1 est une Structure stUsbDevice est une ST_UsbDeviceBase_v1 nPad est un entier sur 2 octets sUSBDeviceFileName est une chaîne sUSBDeviceBulkFileName est une chaîne FIN ST_UsbDevice_v1_wc est une Structure stUsbDevice est une ST_UsbDeviceBase_v1 nPad est un entier sur 2 octets sFileName est une chaîne UNICODE nBulkFileName est une chaîne UNICODE FIN tabUsbDevice est un tableau dynamique de 0 ST_UsbDevice_v1 tabUsbDevice_wc est un tableau dynamique de 0 ST_UsbDevice_v1_wc Si quelqu'un peut valider ma transcription en WD ce serait parfait. Et l'autre problème est lié à l'appel de la DLL : En C: Function(WacomGSS_All, int, getUsbDevices, (size_t sizeofUsbDevice, size_t * count, WacomGSS_UsbDevice * * ret) ) Function(WacomGSS_W32, int, getUsbDevices_wc, (size_t sizeofUsbDevice, size_t * count, WacomGSS_UsbDevice_wc * * ret) ) En WD : nResult est un entier nSizeOfUsbDevice est un entier système nCount est un entier système nResult = AppelDLL32(gsDllNameToCall,"WacomGSS_getUsbDevices",nSizeOfUsbDevice,&nCount,&tabUsbDevice) Je reçois le retour nResult, mais j'ai toujours une erreur soit "Invalid Parameter Null Pointer", soit "Invalid Parameter". A priori, la DLL se charge normalement : hInst est un entier gsDllNameToCall est une chaîne = "wgssSTU.dll" hInst = ChargeDLL(gsDllNameToCall) SI hInst = 0 ALORS Erreur(ErreurInfo()) SINON Info("DLL chargée") FIN Merci pour votre aide, car je suis totalement coincé. A+, SB
essai de contacté Karine sur Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! elle a réussit a le faire
Salut Popoy, j'ai déjà tenté de ce côté, et pour l'instant c'est le désert total. Le SDK est bien pourri, sans compter que je n'ai jamais travailler avec des assemblages .NET. Je préfère accéder via les API low-level, comme je l'ai fait avec les autres SDKs, mais avec celui-ci, c'est la galère. Je n'arrive même pas à récupérer la liste des tablettes connectées ! A+, SB
A priori ça existe en low level Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! la ou les tablettes ont quoi comme référence. je suppose que tu as vu cette page Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! sinon le Delphi est selon certains assez proche du wlangage Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens! As tu essayer la version HTML/Javascript Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!
Popoy, j'ai le SDK Low Level, MAIS, je cite WACOM : "The C interface has not yet been documented. However the API calls are very consistent across all languages and we recommend using the C++ interface as your guide. The interface is a wrapper around the C++ classes. As such, you must create a handle, pass it to each function and remember to free it after use. There is no difference or advantage between calling functions directly or by using the function table - the decision is down to the developer. Note that there is no handling of images in the C interface" Il se trouve que les API Low Level sont AUSSI osbcures que leurs tablettes. Je veux éviter de passer par du .NET et l'exemple DELPHI fait apparemment appel à des COM pour les appels. Mais personne n'a répondu à ma demande... Mon code est-il correct, ou bien je manque quelquechose ? Merci
pour répondre a ta question a part ST_UsbDevice_v1 que tu as mis 2 fois je n'ai rien vu de spécial mais je ne suis pas un spécialiste du c. pour moi peut importe la façon de faire, le plus important est de trouver une solution. essai appeldll32 regarde l'exemple WD PC Infos qui peut te donner des fonctions pour trouver le port USB utilisé pour la tablette.
Il s'agit de l'utilisation d'une structure à l'intérieur d'une structure, donc oui, c'est normalement possible d'utiliser le même nom dans une description différente.
Salut à tous ! J'ai pu obtenir un autre SDK qui je l'espère sera moins buggé. Je vous tiendrai au courant.
Salut à tous ! Problème résôlu... A priori il y aurait des bugs dans WD, et j'ai remonté le tout au ST. Les développeurs vont regarder de plus près. En attendant, avec 2 workaround, cela fonctionne. Je pense qu'un exemple et son composant seront disponibles d'ici 2 semaines environ.
Personnellement, quand j'ai un Code en C ou C# qui marche, je refais mon propre .net ou ma dll que je maitrise. Sinon, J'utilise WDAPI pour voir