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ß
    Landi

    Hier 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


Anmelden zum Antworten