Hi! Ich habe folgendes Problem mit dem FTDI Treiber: Ich habe bis jetzt nur die Headerdatei des ftd2xx Treibers in mein Programm eingebunden (das nichts macht ausser diese Datei einzubinden) und bekomme beim Compilieren nur Fehler. Ich bin C++ Anfänger und kann damit nicht allzuviel anfangen. Vieleicht kann mir hier ja jemand helfen. Danke hmann Fehler: g++.exe -c main.cpp -o main.o -I"C:/Dev-Cpp/include/c++/3.3.1" -I"C:/Dev-Cpp/include/c++/3.3.1/mingw32" -I"C:/Dev-Cpp/include/c++/3.3.1/backward" -I"C:/Dev-Cpp/lib/gcc-lib/mingw32/3.3.1/include" -I"C:/Dev-Cpp/include" In file included from main.cpp:3: ftd2xx.h:52: error: syntax error before `;' token ftd2xx.h:53: error: syntax error before `;' token ftd2xx.h:167: error: `DWORD' was not declared in this scope ftd2xx.h:167: error: `DWORD' was not declared in this scope ftd2xx.h:167: error: typedef `PFT_EVENT_HANDLER' is initialized (use _typeof_ instead) ftd2xx.h:183: error: syntax error before `;' token ftd2xx.h:201: error: syntax error before `FT_Open' ftd2xx.h:207: error: syntax error before `FT_OpenEx' ftd2xx.h:214: error: syntax error before `FT_ListDevices' ftd2xx.h:221: error: syntax error before `FT_Close' ftd2xx.h:226: error: syntax error before `FT_Read' ftd2xx.h:234: error: syntax error before `FT_Write' ftd2xx.h:242: error: syntax error before `FT_IoCtl' ftd2xx.h:254: error: syntax error before `FT_SetBaudRate' ftd2xx.h:260: error: syntax error before `FT_SetDivisor' ftd2xx.h:266: error: syntax error before `FT_SetDataCharacteristics' ftd2xx.h:274: error: syntax error before `FT_SetFlowControl' ftd2xx.h:282: error: syntax error before `FT_ResetDevice' ftd2xx.h:287: error: syntax error before `FT_SetDtr' ftd2xx.h:292: error: syntax error before `FT_ClrDtr' ftd2xx.h:297: error: syntax error before `FT_SetRts' ftd2xx.h:302: error: syntax error before `FT_ClrRts' ftd2xx.h:307: error: syntax error before `FT_GetModemStatus' ftd2xx.h:313: error: syntax error before `FT_SetChars' ftd2xx.h:322: error: syntax error before `FT_Purge' ftd2xx.h:328: error: syntax error before `FT_SetTimeouts' ftd2xx.h:335: error: syntax error before `FT_GetQueueStatus' ftd2xx.h:341: error: syntax error before `FT_SetEventNotification' ftd2xx.h:348: error: syntax error before `FT_GetStatus' ftd2xx.h:356: error: syntax error before `FT_SetBreakOn' ftd2xx.h:361: error: syntax error before `FT_SetBreakOff' ftd2xx.h:366: error: syntax error before `FT_SetWaitMask' ftd2xx.h:372: error: syntax error before `FT_WaitOnMask' ftd2xx.h:378: error: syntax error before `FT_GetEventStatus' ftd2xx.h:384: error: syntax error before `FT_ReadEE' ftd2xx.h:391: error: syntax error before `FT_WriteEE' ftd2xx.h:398: error: syntax error before `FT_EraseEE' ftd2xx.h:407: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:408: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:409: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:413: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:414: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:419: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:420: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:421: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:422: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:426: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:427: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:428: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:429: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:430: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:431: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:432: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:436: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:437: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:438: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:439: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:440: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:441: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:442: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:443: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:444: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:445: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:446: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:447: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:448: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:449: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:450: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:451: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:452: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:453: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:454: error: 'UCHAR' is used as a type, but is not defined as a type. ftd2xx.h:458: error: syntax error before `FT_EE_Program' ftd2xx.h:464: error: syntax error before `FT_EE_ProgramEx' ftd2xx.h:474: error: syntax error before `FT_EE_Read' ftd2xx.h:480: error: syntax error before `FT_EE_ReadEx' ftd2xx.h:490: error: syntax error before `FT_EE_UASize' ftd2xx.h:496: error: syntax error before `FT_EE_UAWrite' ftd2xx.h:503: error: syntax error before `FT_EE_UARead' ftd2xx.h:511: error: syntax error before `FT_SetLatencyTimer' ftd2xx.h:517: error: syntax error before `FT_GetLatencyTimer' ftd2xx.h:523: error: syntax error before `FT_SetBitMode' ftd2xx.h:530: error: syntax error before `FT_GetBitMode' ftd2xx.h:536: error: syntax error before `FT_SetUSBParameters' ftd2xx.h:543: error: syntax error before `FT_GetDeviceInfo' ftd2xx.h:553: error: syntax error before `FT_StopInTask' ftd2xx.h:558: error: syntax error before `FT_RestartInTask' ftd2xx.h:563: error: syntax error before `FT_SetResetPipeRetryCount' ftd2xx.h:569: error: syntax error before `FT_ResetPort' ftd2xx.h:579: error: syntax error before `FT_W32_CreateFile' ftd2xx.h:590: error: syntax error before `FT_W32_CloseHandle' ftd2xx.h:595: error: syntax error before `FT_W32_ReadFile' ftd2xx.h:604: error: syntax error before `FT_W32_WriteFile' ftd2xx.h:613: error: syntax error before `FT_W32_GetLastError' ftd2xx.h:618: error: syntax error before `FT_W32_GetOverlappedResult' ftd2xx.h:626: error: syntax error before `FT_W32_CancelIo' ftd2xx.h:635: error: syntax error before `:' token ftd2xx.h:636: error: syntax error before `:' token ftd2xx.h:637: error: syntax error before `:' token ftd2xx.h:638: error: syntax error before `:' token ftd2xx.h:639: error: syntax error before `:' token ftd2xx.h:640: error: syntax error before `:' token ftd2xx.h:641: error: syntax error before `:' token ftd2xx.h:642: error: syntax error before `:' token ftd2xx.h:643: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:644: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:648: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:649: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:650: error: syntax error before `:' token ftd2xx.h:651: error: syntax error before `:' token ftd2xx.h:652: error: syntax error before `:' token ftd2xx.h:653: error: syntax error before `:' token ftd2xx.h:654: error: syntax error before `:' token ftd2xx.h:655: error: syntax error before `:' token ftd2xx.h:656: error: syntax error before `:' token ftd2xx.h:657: error: syntax error before `:' token ftd2xx.h:658: error: syntax error before `:' token ftd2xx.h:659: error: syntax error before `:' token ftd2xx.h:660: error: syntax error before `:' token ftd2xx.h:661: error: syntax error before `:' token ftd2xx.h:662: error: syntax error before `:' token ftd2xx.h:663: error: syntax error before `:' token ftd2xx.h:664: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:665: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:666: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:667: error: 'BYTE' is used as a type, but is not defined as a type. ftd2xx.h:668: error: 'BYTE' is used as a type, but is not defined as a type. ftd2xx.h:669: error: 'BYTE' is used as a type, but is not defined as a type. ftd2xx.h:675: error: 'WORD' is used as a type, but is not defined as a type. ftd2xx.h:679: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:680: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:681: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:682: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:683: error: 'DWORD' is used as a type, but is not defined as a type. ftd2xx.h:688: error: syntax error before `FT_W32_ClearCommBreak' ftd2xx.h:693: error: syntax error before `FT_W32_ClearCommError' ftd2xx.h:700: error: syntax error before `FT_W32_EscapeCommFunction' ftd2xx.h:706: error: syntax error before `FT_W32_GetCommModemStatus' ftd2xx.h:712: error: syntax error before `FT_W32_GetCommState' ftd2xx.h:718: error: syntax error before `FT_W32_GetCommTimeouts' ftd2xx.h:724: error: syntax error before `FT_W32_PurgeComm' ftd2xx.h:730: error: syntax error before `FT_W32_SetCommBreak' ftd2xx.h:735: error: syntax error before `FT_W32_SetCommMask' ftd2xx.h:741: error: syntax error before `FT_W32_SetCommState' ftd2xx.h:747: error: syntax error before `FT_W32_SetCommTimeouts' ftd2xx.h:753: error: syntax error before `FT_W32_SetupComm' ftd2xx.h:760: error: syntax error before `FT_W32_WaitCommEvent' make.exe: *** [main.o] Error 1 Ausführung beendet
Statt hier sämtliche Fehler zu posten, solltest Du Dir nur die ersten paar davon näher ansehen - der Rest sind aller Wahrscheinlichkeit nach Folgefehler. In file included from main.cpp:3: ftd2xx.h:52: error: syntax error before `;' token ftd2xx.h:53: error: syntax error before `;' token Kann ich nichts zu sagen, was steht denn da? ftd2xx.h:167: error: `DWORD' was not declared in this scope ftd2xx.h:167: error: `DWORD' was not declared in this scope Könnte es sein, daß Du vergessen hast, windows.h vor ftd2xx.h einzubinden?
Ich bin leider C++ Anfänger aber muss halt was mit dem FTDI Treiber machen. Der Tip mit der windows.h war die Lösung! Vielen Dank!! Ciao hmann
Ich schreib das jetzt mal hier rein, und nicht in einen neuen Thread, da es zum Thema (der Überschrift) passt. Ich hab mir gestern mal dev-c++ geladen, den d2xx-Treiber von FTDI und versuche nun die beiden zusammen zu benützen (in C++). Mein Testprogramm (aus dem HelloWorld-Beispiel von dev-c++ und etwas Beispielcode aus der Dokumentation der dll zusammengeschustert): #include <windows.h> #include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <ftd2xx.h> int main() { cout << "Hello World!" << endl; FT_HANDLE ftHandle; FT_STATUS ftStatus; ftStatus = FT_Open(0,&ftHandle); if (ftStatus == FT_OK) { cout << "ok" << endl; } else { cout << "fehler" << endl; } cout << "Press ENTER to continue.." << endl; getchar (); FT_Close(ftHandle); return 0; } Das lässt sich auch ohne Proleme kompilieren, jedoch schimpft der Linker: d:\sources\cpp\helloworld\untitled1.o: In function `main': //d/sources/cpp/helloworld/untitled1.cpp:12: undefined reference to `_imp__FT_Open@8' //d/sources/cpp/helloworld/untitled1.cpp:21: undefined reference to `_imp__FT_Close@4' Ich habe mich ein wenig im Internet umgeschaut, und mit einer Anleitung (http://www.emmestech.com/software/cygwin/pexports-0.43/moron1.html) mir aus der ftd2xx.dll eine ftd2xx.def und libftd2xx.a erstellt (beide im dev-c++\lib-Verzeichniss). Auf der oben genannten Seite steht außerdem, man müse manchmal so ein ein @xx hinten an die Funktionsnamen in der .def-Datei anfügen, damit gcc sie sieht, Ich hab das mal getestet (also FT_open durch FT_open@8 in der .def ersetzt, FT_Close entsprechend). Das Programm lässt sich dann zwar kompilieren, jedoch erhalte ich beim Ausführen die Fehlermeldung, dass der Prozedureinsprungpunkt FT_Close@4 nicht gefunden werden konnte. Wenn ich das Programm debugge, gibt der gdb nach der Eingabe von run Folgendes aus: run Starting program: \Sources\cpp\HELLOW~1/PROJEC~1.EXE 77f40000:ntdll.dllntdll.dll: No such file or directory. 77e40000:C:/WINDOWS/system32/kernel32.dll 10000000:D:/ft245/d2xx/ftd2xx.dll 76620000:C:/WINDOWS/System32/SETUPAPI.dll 77be0000:C:/WINDOWS/system32/msvcrt.dll 77da0000:C:/WINDOWS/system32/ADVAPI32.dll 78000000:C:/WINDOWS/system32/RPCRT4.dll 7e180000:C:/WINDOWS/system32/GDI32.dll 77d10000:C:/WINDOWS/system32/USER32.dll gdb: unknown target exception 0xc0000139 at 0x77f866bc Program received signal SIGSEGV, Segmentation fault. 0x144f8 in ?? () Es scheint also nciht daran zu liegen, dass er die .dll nicht findet. Hat schonmal jemand erfolgreich den d2xx-Treiber unter Windows mit gcc zum laufen bekommen und kann mir sagen wie es geht?
Du brauchst zum linken nicht in den Projektdateien rumpfuschen, sondern kannst deine *.a Datei einfach im Menü Projekt/Optionen/Parameter/Linker einbinden. Alternative kannst du *.dll Dateien auch direkt mit LoadLibrary(dllname) einbinden.
Daß sich das ganze problemlos übersetzen lässt, ist doch schon mal ein Schritt vorwärts. Die Linkerfehlermeldung ist naheliegend; in der von Dir eingebundenen Headerdatei werden Funktionsnamen definiert, die Dein Code aufruft, für die aber kein Code vorhanden ist. Daß der in einer DLL vorhanden ist, weiß der Linker nicht; um mit DLLs so umgehen zu können, wurde das Konzept der Importlibrary eingeführt. Das ist eine Library-Datei (*.lib), die statisch zum Programm gelinkt werden kann und für jede der von der DLL exportierten Funktionen einen Funktionsstummel enthält, der den Linker befriedigt und zur Laufzeit die entsprechende Funktion in der DLL aufruft. Du musst also zu Deinem Programm die Importlibrary linken, damit die vom Linker bemängelten unbekannten Symbole aufgelöst werden können. Alternativ musst Du den von Heinz vorgeschlagenen Weg verfolgen und die DLL selbst mit LoadLibrary laden und mit GetProcAddress die Funktionspointer der von Dir aufzurufenden Funktionen bestimmen. Das hat zwar den Vorteil, daß Dein Programm auch dann die Chance bekommt, irgendetwas sinnvolles zu tun, wenn die DLL nicht vorhanden ist (beim Verwenden der Importlibrary motzt der OS-eigene Programmlader mit einer Fehlermeldung "DLL nicht gefunden"), ist aber recht fehlerträchtig und nicht leicht zu handhaben. Irgendwelche .def-Dateien oder gar Assemblerdateien musst Du nicht verwenden.
>Irgendwelche .def-Dateien oder gar Assemblerdateien musst Du nicht >verwenden. Das wäre ja erfreulich, aber wenn ich entweder die mitgelieferte .lib benutze, oder mir mit dlltool aus der dll eine eigene erzeuge, bleibt das Problem bestehen. Ich fürchte fast, dass es eher daran liegt, dass der gcc umbedingt diese @x an den Funktonen dran sehen möchte,d a es sich ja auch mit eienr händisch modifizierten .def-Datei linken ließ, jedoch natürlich nicht erfolgreich ausführen.
Hi definiert dein Compiler denn das Symbol __cplusplus? Übersetz das Programm mal mit -E als Compileroption (dann läuft nur der Präprozessor) und schau ob um die Funktionsprototypen in der FTD2XX.dll ein extern "C" {} Block drum rum ist. Wenn dem nicht so ist definier mal das Symbol __cplusplus an der Kommandozeile oder vor dem #include "FTD2XX.dll". C++ benötigt diesen Block um C Funktionen um zu wissen das es eine C Funktion aufrufen soll. Matthias
Wenn du sowas hier meinst: extern "C" { __attribute__(( dllimport )) FT_STATUS __attribute__((_stdcall_)) FT_Open( int deviceNumber, FT_HANDLE *pHandle ); __attribute__(( dllimport )) FT_STATUS __attribute__((_stdcall_)) FT_OpenEx( PVOID pArg1, DWORD Flags, FT_HANDLE *pHandle ); ..... Dann scheint er das richtig zu machen, aber sofort wenn ich das -E weglasse hab ich meinen Fehler wieder. Ich hab g++ jetzt mal von der Kommandozeile aus selbst aufgerufen, da sich dev-c++ bei dem compilerparameter -E beim Linken aufgehängt hat (was ja dann auch nicht wirklich Sinn macht)
Hi bei -E kann kein Fehler kommen da da nur der Präprozessor läuft. Aber wenn daß extern "C" {} um die Prototypen aus der FTD2XX.dll drin ist weiß ich auch nicht weiter. Mit dem GCC hab ich unter Windows noch nie eine DLL eingebunden. Probier doch mal den M$ Compiler. Der kostet auch nichts und sollte auf seiner Heimatplatform besser geeignet sein. Matthias
Du benutzt die Importlibrary und der Linker nörgelt trotzdem? Dann solltest Du Dir mal ansehen, wie die Symbole in der Importlibrary benannt sind, und deren Namen mit den vom Compiler generierten und bemängelten vergleichen. Ich habe mal das Dumpbin meines Compilers (VC6) auf die Library angesetzt und mir die Namen der darin definierten Symbole angesehen: C:\>dumpbin FTD2XX.lib /exports Microsoft (R) COFF Binary File Dumper Version 6.00.8447 Copyright (C) Microsoft Corp 1992-1998. All rights reserved. Dump of file FTD2XX.lib File Type: LIBRARY Exports ordinal name 2 _FT_Close@4 11 _FT_ClrDtr@4 13 _FT_ClrRts@4 37 _FT_EE_Program@8 67 _FT_EE_ProgramEx@24 38 _FT_EE_Read@8 68 _FT_EE_ReadEx@24 39 _FT_EE_UARead@16 40 _FT_EE_UASize@8 etc.pp. Vergleiche ich das mit der von Dir geposteten Fehlermeldung des Linkers d:\sources\cpp\helloworld\untitled1.o: In function `main': //d/sources/cpp/helloworld/untitled1.cpp:12: undefined reference to `_imp__FT_Open@8' so wird schnell klar, wo das Problem liegt. Dein Compiler setzt das Präfix imp vor den Funktionsnamen, das sollte er sein lassen.
So, Problem gelöst, hier findet man die Lösung: http://www.mingw.org/mingwfaq.shtml#faq-msvcdll Das ganze liegt im Prinzip daran, dass die tollen universellen dll-Dateien mal wieder ein totales chaos sind, jeder Compiler etc. kocht sein eigenes Süppchen mit _ vornedran, @whatever hintendran, ... Aber es gibt ein Tool um die .lib-Datei gcc-gerecht zu machen, d. h. bei mir funktioniert es jetzt.
Hallo zusammen, ich habe das gleiche Problem, allerdings finde ich die Lösung auf dem Link nicht. (Der Beitrag hier ist auch schon etwas älter..) Ich bin schon eine Weile mit dlltool etc unterwegs ohne die Sache zu kopieren. Hat hier jemand eine Anleitung?
Hallo jP, Für mich hat es so funktioniert: pexports für das .def File aus der dll. Dann die korrekten @4/8 etc. nachtragen (von Hand, der Linker nennt die Zahlen). Dann mit dlltool -d x.def -l x.dll.a -k (!) import library erzeugen und verwenden. Christof
Danke für die Hilfe. Ich doktore da seitdem immer mal wieder dran rum und war immer der überzeugung, dass ich da irgendwann noch von alleine drauf komme... Aber jetzt frag ich doch noch: Funktioniert allerdings immernoch nicht. Hier im Forum gibt es das Projekt "USB_IO_Expander". Das ist ein Projekt für Qt (MinGW) mit umgestellten FTD2XX.a, auch mit der .h und .a kann ich nicht kompilieren. Ich vermute es liegt wie oben beschrieben an dem Präfix "_imp". Nur wie sag ich dem Compiler, dass er es weglassen soll?
Evtl. kann ich für alle Googler, die hier drauf stoßen noch mal helfen: Ich habe es so gelöst, dass ich nicht die AMD64 version der DLLs genommen haben sondern die i368 Version. Beide gibt es in dem Zipfile mit und bei funzt es nun. MfG Madman irrenhausag.com
Bin auch per Suchmaschine auf diesen Beitrag gestoßen. Fürs Protokoll, ich habe es so gelöst: - Beim FTDI-Treiber wird im Verzeichnis i386 die Importlibrary ftd2xx.lib mitgeliefert - Im Projekt den Header ftd2xx.h einbinden und gegen obige .lib linken - Zum Ausführen die ftd2xx.dll in das Verzeichnis mit der erzeugten .exe stecken Ein Minimalprojekt für CodeBlocks + MinGW habe ich angefügt. Die DLL bitte selbst noch reinkopieren und ggf Pfade anpassen (Project->Build Options). Viele Grüße, Oliver.
hallo, also ich bin mittlerweile echt verzweifelt^^ Ich bekomme ständig den Fehler ... undefined reference to "__imp__FT_ListDevices@12" Ich habe schon alle vorschläge die hier gebracht wurden ausprobiert jedoch ohne zu einer lösung zu gelangen. -ich verwende die Dateien aus dem i386 Ordner -ich habe auch schon entsprechende .def bzw .a Dateien erzeugt Woran könnts noch liegen..? mfg
... aha, und wie linke ich mit der Importlibrary?^^ sry ich glaub ich steh grad ein bissl neben mir; plag mich grad seit 6 stunden mit diesem linkfehler rum :P
Indem Du Deinem Linker mitteilst, daß er das tun soll. Dazu muss die Library natürlich im richtigen, also zu Deinem Linker passenden Format vorliegen.
OMG ich hab meinen fehler gefunden... und zwar kommts anscheinend drauf an dass beim g++ aufruf "-lftd2xx" zum schluss stehen muss und nicht irgendwo in der mitte... tya, muss man auch mal draufkommen :P
ich bekomme ständig dieser Fehler:'D2XXDevice' has not been declared. hat bitte jemand eine Idee? Danke
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.