www.mikrocontroller.net

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

Autor: Thorsten2605 (Gast)
Datum: 18.06.2008 16:51

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: Ernst Bachmann (ernst)
Datum: 18.06.2008 17:24

mit #include bindet man header-Dateien ein, dlls musst du dem Linker
geben, nicht dem Compiler.
Autor: Thorsten2605 (Gast)
Datum: 18.06.2008 17:41

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: Ernst Bachmann (ernst)
Datum: 18.06.2008 18:17

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: 19.06.2008 09:33

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: 21.06.2008 17:59

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: Ernst Bachmann (ernst)
Datum: 21.06.2008 19:12

> ... 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: 21.06.2008 20:18

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: 22.06.2008 15:27

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: Ernst Bachmann (ernst)
Datum: 22.06.2008 16:08

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: 22.06.2008 16:15

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: 22.06.2008 16:24

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: 22.06.2008 17:03

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: 22.06.2008 22:42

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: 23.06.2008 10:03

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net