mikrocontroller.net

Forum: PC-Programmierung FT245RL ansteuern funktioniert nicht


Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe ein usb-modul mit dem ft245rl entwickelt und will dieses nun
mit c oder c++ ansteuern. Deshalb installierte ich den Dev C++ Compiler 
und erstellte ein kleines Testprogramm so wie es in den, von FTDI zur 
Verfügung gestellten, Beispielen in C++ zu sehen ist. Beim Compilieren 
erscheint dann aber immer die selbe Fehlermeldung: undefinied reference 
to _imp__FT_GetLibraryVersion@4

was hat dieser Fehler zu bedeuten und wie kann ich ihn beheben?

Vielen Dank im Voraus!

Gruss,
Patrick

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

Bewertung
0 lesenswert
nicht lesenswert
Das bedeutet, daß Du die zur FT2XXX.DLL gehörende Importlibrary linken 
musst.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort! Ehm ok, aber wie mache
ich das genau?

Also ich verwende folgende Files in meinem Projekt:

ftd2xx.h
FTChipID.h
stdio.h
windows.h

was muss ich jetzt noch genau machen?

Ich bin noch ein totaler Anfänger in der USB-Programmierung

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

Bewertung
0 lesenswert
nicht lesenswert
Das reicht nicht, Du verwendest Funktionen, die in der DLL enthalten 
sind. Um die aufrufen zu können, wird eine sogenannte Importlibrary 
verwendet - das ist eine Library, die "von außen" aussieht wie eine 
statische Library, aber statt vollständiger Funktionen nur eine 
Sprungtabelle enthält, die vom Programmlader des Betriebssystemen mit 
Aufrufen der entsprechenden Funktionen in der DLL ersetzt wird.

Wie Libraries zu verwenden sind, solltest Du der Dokumentation Deines 
Compilers entnehmen können.

Das Thema Importlibrary wurde kürzlich hier ausdiskutiert, vielleicht 
kannst Du da ja die eine oder andere Erkenntnis gewinnen:

Beitrag "C++ QT Creater FTD2xx.lib einbinden"

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm ok, aber irgendwie kriege ich das mit LIBS += c:/ nicht hin. Ich 
weiss nicht in welchem File ich diese Zeilen für die Verlinkung 
hinschreiben muss. Kannst du mir da evtl. weiterhelfen? Ein kleines 
Codebeispiel, das funktionieren müsste, wäre echt super

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

Bewertung
0 lesenswert
nicht lesenswert
Kann ich Dir nicht bieten, da ich Deinen Compiler nicht verwende.

Die Angabe gehört ins makefile.

Wie wäre es, mal die Dokumentation Deines Compilers zu studieren?

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank! Das hilft mir fürs Erste weiter. Hoffentlich funktionierts
jetzt!

Gruss,
Patrick

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geschafft! Ich kann nun die Libraries linken. Doch kaum ist das
eine Problem gelöst, kommt schon das Nächste:

Ich will unter Anderem die Funktion FT_GetLibraryVersion() aufrufen. 
Beim Compilieren erscheint kein Fehler und mein Konsole-Fenster öffnet 
sich. Doch dann erscheint immer wieder die Meldung, dass meine EXE ein 
Problem festgestellt hat und beendet werden muss! Dieses Meldung kommt 
auch bei den meisten anderen Funktionen.

Was mache ich falsch?


Gruss,
Patrick

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

Bewertung
0 lesenswert
nicht lesenswert
> Was mache ich falsch?

Irgendwas. Lass doch mal Dein Programm im Debugger laufen.

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habs Geschafft! Ich habe die Variable für die Übergabe der Daten falsch 
benannt

Gruss,
Patrick

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.