mikrocontroller.net

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


Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Εrnst B✶ (ernst)
Datum:

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

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Clemens N. (cnovak)
Datum:

Bewertung
0 lesenswert
nicht 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 (?)

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?!?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... dem bcc-Ordner ..

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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Christian R. (supachris)
Datum:

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

Autor: Thorsten2605 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.