Forum: PC-Programmierung LibUSB und Microsoft Visual C++


von Thorsten2605 (Gast)


Lesenswert?

Hallo,

Ich habe gerade eben versucht die libusb0.dll über include einzubinden 
(VC6 und 2005) jedoch kommen bei mir jede Menge Fehler mit Hexzahlen; 
also zum Beispiel: "unbekanntes Zeichen: 0x3"...

Was mache ich da falsch?

Sollte ich bei der VC2005er eher dann libusbdotnet.dll nehmen?

PS: Auch bei der libusbdotnet.dll kommen die Fehler!

von Εrnst B. (ernst)


Lesenswert?

mit #include bindet man header-Dateien ein, dlls musst du dem Linker 
geben, nicht dem Compiler.

von Thorsten2605 (Gast)


Lesenswert?

Schonmal danke!

Aber:

1. Wo muss ich die Datei dem Linker übergeben?
2. Woher bekomme ich die Header-Datei?
3. Woher bekomme ich die .lib-Datei?

von Εrnst B. (ernst)


Lesenswert?

2+3 Hier:

http://libusb-win32.sourceforge.net/#downloads

zu 1, Zitat von derselben Seite:

To use libusb-win32 in your own programs include the supplied header 
file usb.h, and link against the import library (libraries for GCC, BCC, 
and MSVC are available)

WIE die import-Library genau anzugeben ist, fragst du am besten die VC++ 
Hilfe, oder jemanden der sich damit auskennt.

von Clemens N. (cnovak)


Lesenswert?

Hallo,

mit Visual C++ (express Edition) geht das so:
Alt-F7 (oder Project Properties) öffnen, Linker auswählen und dann auf 
Input. Rechts unter Additional Dependencies kannst Du dann den 
Librarynamen angeben.
Also libname.lib & das File sollte im Projektverzeichnis liegen (?)

von Thorsten2605 (Gast)


Lesenswert?

Und welche libusb.lib muss ich nehmen?


Leider hab ich kein feld, dass Additional Dependencies heißt...


Ich hab einfach aus dem include-ordner die usb.h rausgenommen und aus 
dem bcc-Ordner unter Libraries die libusb.lib!

Dann in Linker bei Additional Library-Path libusb.lib eingetragen, aber 
ich bekomme immer noch Linkerfehler über unaufgelöste Symbole?!?

von Εrnst B. (ernst)


Lesenswert?

> ... dem bcc-Ordner ..

Warum hast du die Version für den Borland C Compiler verwendet, ich denk 
du benutzt den Microsoft Compiler?

von Christian R. (supachris)


Lesenswert?

Thorsten2605 wrote:

> Dann in Linker bei Additional Library-Path libusb.lib eingetragen, aber
> ich bekomme immer noch Linkerfehler über unaufgelöste Symbole?!?

Merkst du was?
Da muss der Pfad rein und nicht die Lib an sich. Für die Lib gibts auch 
ein extra Feld noch...

von Thorsten2605 (Gast)


Lesenswert?

Danke euch! Jetzt funktioniert es, aber ich kann leider mit snoopy pro 
die Paktete nicht verfoglen was er schickt?!?

Brauch ich für libusb ein anderes usb sniffing tool?

von Εrnst B. (ernst)


Lesenswert?

Kann gut sein das usbsnoopy nicht mehr an die USB-Daten rankommt, wenn 
der LibUSB-Treiber als Filter installiert ist.

Aber was soll das mitlesen mit usbsnoopy bringen? Es ist dein Programm 
mit deinem Sourcecode, den du debuggen kannst. USBSnoopy würde nur noch 
was bringen, wenn du der libUSB nicht zutraust, ihre API-Aufrufe korrekt 
an den Windows-USB-Treiber weiterzuleiten.

von Thorsten2605 (Gast)


Lesenswert?

Ich versuche gerade einen anderen Treiber für ein USB-Gerät zu basteln 
und da will ich auf nummer sicher gehen ob daten gesendet bzw. empfangen 
werden... Ich hab bisher noch nie was mit USB-Treibern gemacht und will 
eben wissen was er genau an Daten sendet...

Wie istalliere ich den libusb-treiber nicht als filter?

von Thorsten2605 (Gast)


Lesenswert?

Das komische ist sowieso, dass das Gerät laut USB-Info-Programmen im 
Bulk-Transfer Daten bekommt! 1 Paket hat aber laut Snoopy Pro mit dem 
originalen Treiber 1024 Bytes...

Wie kann das sein? Ich dachte immer Bulk würde nur 64 können...

von Christian R. (supachris)


Lesenswert?

BULK kann bei USB HighSpeed 512 Byte Paketgröße. 1024 Byte Paketgröße 
dürften eigentlich nur in einem ISO-Stream vorkommen.

von Thorsten2605 (Gast)


Lesenswert?

Und warum werden dann 1024 Bytes übertragen? Und wie geht das dann?

Laut USB-Programmen (z.B. usbview) unterstützt das Gerät nur 
Bulk-Transfer! Laut Snoopy Pro werden aber 1024 Bytes übertragen...

Kann mir jemand sagen, wie ich libusb mit einem Sniffer überwachen kann?

von Christian R. (supachris)


Lesenswert?

Fehler von mir. Ich hab gerade mal am Cypress FX2 1024 Byte Paketgröße 
für BULK-Transfer eingestellt, das geht auch. Bringt sogar einen kleinen 
Geschwindigkeitszuwachs.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.