Unresolved external ... referenced from ....
-
Hallo ,
folgendes Problem: Ich versuche schon 'ne ganze Weile die winscard.dll in mein Programm zu integrieren (Treiber für die PC/SC-Schnittstelle, die das Ansprechen von Kartenleser/Chipkarten erlaubt).
Als Fehlermeldung erhalte ich "Unresolved external 'SCardEstablishContext' referenced from C:\...\UNIT1.OBJ". Die Lib-Datei hatte ich zuvor in ein Borland-Format konvertieren müssen (mittels Borlandtool 'implib') und ist zusammen mir der Headerdatei 'winscard.h' eingebunden. Woran kann es liegen?
Jemand 'ne Idee?
Gruß
LandiHier ein Programmauszug:
#include <vcl.h>
#pragma hdrstop#include "Unit1.h"
#include "winscard.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;void __fastcall TForm1::Button1Click(TObject Sender)
{
SCARDCONTEXT Context; / Ressource-Manager-Kontext /
SCARDHANDLE CardHandle; / Handle auf die Chipkarte /
DWORD Protocol; / Übertragungsprotokoll /
LONG result; / Variable für Return-Codes /
DWORD dwReaders; / Anzahl verfügbarer Terminals /
LPSTR mszReaders; / Liste verfügbarer Terminals /
int i,p,iList[20],reader; / Hilfsvariablen /
SCARD_READERSTATE_A readerState[1]; / Status des Terminals /
DWORD responseLength; / Antwortlänge /
unsigned char response[100]; / Puffer für Antwort /
unsigned short int trailer; / Antwort Trailer *//* Verbindung zum PC/SC Ressource Manager aufbauen */
result = SCardEstablishContext( SCARD_SCOPE_USER, NULL, NULL, &Context);}
//---------------------------------------------------------------------------
-
Den Beitrag aus den FAQ hattest Du gesehen? (http://www.c-plusplus.net/forum/viewtopic.php?t=39193)
Ansonsten lösch die angemekerte obj-Datei mal. Ab und zu kommt der BCB da ein bißchen durcheinander.
-
Danke mal für die Antwort. Habe den Fehler zwischenzeitlich gefunden. Bei der Konvertierung der Original-Lib ins Borland-Format habe ich den Parameter für '_'-Alias (-> cdecl-Funktion zur Kompatibilität mit Microsoft-Biblotheken) eingefügt ( zuvor: 'implib -a winscard.lib winscard.dll' , jetzt: 'implib Winscard.lib winscard.dll'). Mit Weglassen kein Linker-Meckern mehr.

Gruß
Landi