Forum: PC-Programmierung FT245RL ansteuern funktioniert nicht


von Patrick (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Patrick (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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"

von Patrick (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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?

von Patrick (Gast)


Lesenswert?

Vielen Dank! Das hilft mir fürs Erste weiter. Hoffentlich funktionierts
jetzt!

Gruss,
Patrick

von Patrick (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> Was mache ich falsch?

Irgendwas. Lass doch mal Dein Programm im Debugger laufen.

von Patrick (Gast)


Lesenswert?

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

Gruss,
Patrick

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.