2010-10-27 3 views
1
[DllImport("winusb.dll", SetLastError = true)] 
internal static extern Boolean WinUsb_ReadPipe(IntPtr InterfaceHandle, Byte PipeID, 
ref Byte Buffer, UInt32 BufferLength, ref UInt32 LengthTransferred, IntPtr Overlapped); 

J'utilise l'API pour lire les données asynchrones à partir d'un périphérique USB, il fonctionne la plupart du temps sur un système d'exploitation 32 bits. Mais échoue la plupart du temps sur le système 64 bits.Lecture des données à partir du périphérique USB à l'aide de libusb

Quelqu'un peut-il me guider si c'est un problème avec la définition de l'API, le firmware ou autre chose?

+1

J'ai eu beaucoup de problèmes avec libusb sous Windows. Je pourrais suggérer d'utiliser [plus de contrôle direct de l'USB en C# /. NET] (http://www.developerfusion.com/article/84338/making-usb-c-friendly/) ... – ewall

Répondre

0

Vous ne montrez pas de code mais l'importation. Ma question immédiate est de lier à la version 64 bits de winusb.dll sur les systèmes 64 bits? Si votre application est compilée pour Any CPU dans s'exécutera en mode 64 bits sur les systèmes d'exploitation 64 bits et ne peut pas P/Invoke dans des bibliothèques 32 bits.

+0

Il compilé en utilisant l'option AnyCPU, un certain temps je reçois LengthTransferred> 0 mais un peu de temps il reste bloqué sur 0 longueur. –

Questions connexes