Funktionen aus einer Library verwenden
-
Hallo,
ich habe ein Problem und bekomme es alleine nicht hin. Vlt kann mir ja jemand von euch weiterhelfen.
Ich benutze Code::Blocks als IDE und Mingw (g++) als Compiler.
Ich versuche eine wrapper-dll für einen Smart-Card-Reader zu schreiben.In der dll muss ich die mitgelieferten Funktionen aus der CT_API von GEMPLUS aufrufen. Doch der Compiler meckert immer beim Funktionsaufruf:
error: `CT_init' undeclared (first use this function)
In der CT_API ist lediglich eine CTGmplus.lib, die ich mit reimp.exe zu einer libctgmplus.a konvertiert habe.
Unter C::B habe ich dem Linker in der entsprechenden Einstellungen den Eintrag "ctgmplus" hinzugefügt und den Pfad, in dem die Datei liegt, bekanntgegeben.Ausserdem ist die zugehörige dll im system32 - Ordner zu finden.
Jetzt sind allerdings keine header-Dateien bei der lib dabei. Wie mache ich die Funktion jetzt dem Compiler bekannt, so dass ich sie benutzen kann.Für Hilfe wäre ich äußerst dankbar.
Gruß Marco
-
Habe jetzt zu meiner main.h noch die Zeile:
__declspec(dllimport) char CT_init(unsigned short, unsigned short) ;
hinzugefügt. Jetzt bekomme ich keine Compiler-Fehler mehr aber der linker meckert:
Compiling: main.cpp Linking dynamic library: bin\Debug\iSCard.dll Creating library file: bin\Debug\libiSCard.a obj\Debug\main.o: In function `Z7getDatav':C:/Projekte/C++/iSCard/iSCard/main.cpp:12: undefined reference to `_imp___Z7CT_inittt' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 1 seconds)