Hallo Ich möchte in meinem Projekt unter MS Visual C++ 2010 über die USB Schnittstelle den FT232R ansprechen. Dazu habe ich die folgenden Dateien zur Verfügung: FTD2xx.dll, FTD2xx.LIB FTD2xx.h. Die dll ist im Windows System Ordner vorhanden und zusätlizch auch im Pfad meines Projektes. Ich habe nun versucht die LIB Datei meinem Projekt hinzuuzfügen. Leider ohne Erfolg. Die Header Datei läßt sich doch erst nach dem Einbinden der LIB verwenden. Oder nicht? Wie kann ich also die LIB Datei meinem Projekt bekannt machen? Danke für jeden Tipp
Die Verwendung der Library setzt voraus, daß Du mit C oder C++ programmierst, nicht mit "C++/CLI" (früher auch als "Managed C++" bezeichnet). Das schließt die Verwendung der .Net-Umgebung aus. Um in einem C oder C++ - Projekt eine Library zu verwenden, gibt es im Visual C-Compiler zwei Möglichkeiten. Einerseits kann über die Projektverwaltung die Library angegeben werden, andererseits gibt es auch eine Möglichkeit, direkt im Sourcecode einen Kommentar zu hinterlassen, der vom Compiler an den Linker weitergeleitet wird. Der erste Weg besteht darin, in der Projektverwaltung ("Solution Explorer") die Eigenschaften des Projektes anzuzeigen. Im Baum mit den "Configuration Properties" wird auf "Linker" navigiert und dort unter "Input" als "Additional Dependency" die Library eingetragen. Der alternative Ansatz besteht darin, im Sourcecode folgendes einzutragen: #pragma comment(lib, "meinelibrary.lib") Allerdings ist es nicht zwingend erforderlich, die Library zu verwenden. Das ist eine sogenannte "Importlibrary", die Funktionsstummel enthält, die mit der DLL verknüpft sind. Der Sinn davon ist es, das Aufrufen von in DLLs enthaltenen Funktionen genauso einfach zu machen wie den Aufruf von anderen Funktionen. Der Nachteil ist, daß das Programm bereits beim Laden die DLL benötigt, ohne DLL gibt es nur eine von Windows generierte Fehlermeldung, daß die DLL nicht gefunden werden kann. Bei einem Programm, das auch ohne so eine DLL eine sinnvolle Funktion haben könnte, wäre das ungünstig. Auch daher gibt es die Möglichkeit, eine DLL "von Hand" zu laden. Dies geschieht mit den Win32-API-Funktionen LoadLibrary und GetProcAddress. Mit GetProcAddress wird ein Funktionspointer auf eine in der geladenen DLL enthaltene Funktion bestimmt. Diese Vorgehensweise wird übrigens auch in Visual Basic angewandt, um mit in DLLs enthaltenen Funktionen zu arbeiten.
Ok, danke wieder was gelernt. Gibt es denn ein Möglichkeit mit C++/CTI die gewünschte DLL einzubinden? Wenn ich die Zeile #pragma comment(lib, "meinelibrary.lib") einfüge, steht in der Kommandozeile beim Compelieren: Bibliothek wird ignoriert. So geht es also nicht.
Stefan_KM schrieb: > Gibt es denn ein Möglichkeit mit C++/CTI die gewünschte DLL einzubinden? http://ftdichip.com/Support/SoftwareExamples/CodeExamples/VC++.htm Beispiele 2 und 4 ansehen.
Rufus t. Firefly schrieb: > Die Verwendung der Library setzt voraus, daß Du mit C oder C++ > programmierst, nicht mit "C++/CLI" (früher auch als "Managed C++" > bezeichnet). Das schließt die Verwendung der .Net-Umgebung aus. Nein, für genau so etwas ist C++/CLI eigentlich nur zu gebrauchen... Zum Testen mal ein C++/CLI/WinForms Projekt erstellen, zum Projekt die h, DLL und lib hinzufügen, Header und Windows.h includen fertig.
1 | Form^ form = gcnew Form1(); |
2 | |
3 | DWORD numDevices; |
4 | FT_STATUS status; |
5 | status = FT_CreateDeviceInfoList(&numDevices); |
6 | FT_DEVICE_LIST_INFO_NODE* nodes; |
7 | if (status == FT_OK && numDevices > 0) { |
8 | nodes = new FT_DEVICE_LIST_INFO_NODE[numDevices]; |
9 | if (nodes) { |
10 | FT_GetDeviceInfoList(nodes, &numDevices); |
11 | form->Text = gcnew String(&nodes[0].Description[0]); |
12 | |
13 | }
|
14 | }
|
http://msdn.microsoft.com/library/ms235282.aspx
>Nein, für genau so etwas ist C++/CLI eigentlich nur zu gebrauchen... >Zum Testen mal ein C++/CLI/WinForms Projekt erstellen, zum Projekt die >h, DLL und lib hinzufügen, Header und Windows.h includen fertig. Und wie wird das gemacht?
Stefan_KM schrieb: >>Nein, für genau so etwas ist C++/CLI eigentlich nur zu gebrauchen... >>Zum Testen mal ein C++/CLI/WinForms Projekt erstellen, zum Projekt die >>h, DLL und lib hinzufügen, Header und Windows.h includen fertig. > > Und wie wird das gemacht? In der Solution das Projekt auswählen und die FTD2XX.h und FTD2XX.lib hinzufügen (entweder rechte Maustaste oder über das Menu Projekt oder Alt+Shift+A) (die DLL muss nicht unbedingt hinzugefügt werden). Im Quelltext dann die Includes.
1 | #include "stdafx.h" |
2 | #include <Windows.h> |
3 | #include "FTD2XX.h" |
4 | ...
|
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.