www.mikrocontroller.net

Forum: PC-Programmierung USB-HID in MFC


Autor: Willi08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
habe ein Projekt mit AVR-USB von (obdev punkt at) (weiss nicht, ob ich 
einen link hier reinstellen darf) - das "HID-Data" Beispiel.

Nun möchte ich das PC-Beispielprogramm, welches als Consolenanwendung 
einwandfrei funktioniert in ein MFC-Dialog Programm einbringen.
Leider bekomme ich auf einmal mehrere Fehlermeldungen beim Compilieren 
(z.B. bei malloc() etc.), habe aber inzwischen alle beseitigen können 
bis auf folgenden:

error C2027: Verwendung des undefinierten Typs "usbDevice"
Siehe Deklaration von 'usbDevice'

Dies ist folgendermassen deklariert:
typedef struct usbDevice usbDevice_t;

In der Konsolenanwendung (auch mit VC6 kompiliert) kommt dieser Fehler 
nicht. Ich finde aber auch dort nirgends wo usbDevice herkommt.
Ist ausschliesslich in dieser Headerdatei vorhanden.
(habe schon eine Volltextsuche in allen Dateien c,h,lib gemacht)

Bitte helft - suche schon einen ganzen Tag lang.

PS: ich poste hier, da ich mich bei obdev erst anmelden muss.

Vielen Dank schonmal!

Autor: Criuix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Natürlich muss du den struct usbDevice auch irgentwo definieren. Nur 
typedef reicht nicht. Woher soll c wissen was usbDevice ist ? Den 
gesamten Quellcode sollte man zur Analyse natürlich haben. Irgentwo muss 
sich auch die Konsole die Definition hersaugen.

Autor: Willi08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist mir ja klar, dass dieser irgendwo definiert sein muss.
Ich hatte gehofft mir kann jemand sagen wo (weil das jemand kennt).
Wie gesagt habe ich im gesamten Projekt mit Volltextsuche nichts 
gefunden.
Werde mal beide Projekteinstellungen vergleichen ob dort noch etwas 
eingebunden wird, was ich nicht gefunden habe.
Kommentiert ist die betreffende Zeile mit:

/* Opaque data type representing the USB device.

Autor: Holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist da noch eine .lib Datei dabei ???
Mit dem Project-Manager
Dem Pojekt hinzufügen ... Dateien .*.c *.c++ ..
bzw *.lib .
Die Lib-Datei mit hinzufügen genau wie die *.c Datei.

Gruss Holger.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie gesagt habe ich im gesamten Projekt mit Volltextsuche nichts
> gefunden.

Exakt welches funktionierende Konsolenprojekt verwendest Du denn als 
Ausgangsbasis?

Autor: Willi08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
obdev.at/downloads/avrusb/avrusb-20081126.zip
und dort -> examples -> hid-data

Ich habe aber inzwischen eine andere Variante gewählt:
www.ime.jku.at/TUSB/#implement

Ist alles mit API Aufrufen und funktioniert nach ein wenig lib-suchen 
WINVER setzen und kopieren einwandfrei.
War nur schwer, wenn man vorher noch nix mit USB gemacht hat (ausser 
Spannung klauen ;)
Auf das Projekt kann ich aber gut aufbauen.

Keine Ahnung warum das andere nicht ging.

Trotzdem Vielen Dank !
PS.: Interressieren tut es mich allerdings immernoch - auch wenn ich nun 
ein anderes Beispiel gewählt habe.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So, jetzt habe ich mir das mal angesehen, struct usbDevice ist 
Bestandteil von libusb bzw. libusb-win32.

Autor: Willi08 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Rufus,
ich hatte die Beschreibung so verstanden, dass für dieses Beispiel die 
Libusb nicht benötigt wird.

Na gut...

Trotzdem noch eine Frage:
Ich habe die libusb-win32-src-0.1.12.1.tar
hier und entpackt ABER wo zum Teufel finde ich diese Definition?

Danke

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willi08 wrote:

> Trotzdem noch eine Frage:
> Ich habe die libusb-win32-src-0.1.12.1.tar
> hier und entpackt ABER wo zum Teufel finde ich diese Definition?

Das sind ja auch die Treiber-Quellen, da findest keine Elemente des API. 
Du musst das File libusb-win32-device-bin-0.1.12.1.tar.gz runterladen, 
das ist der kompilierte Treiber plus DLL plus Header-File und Library. 
Dann hast du auch deine Strukturen usw.

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.