S
hallo
hier nochmal eine anfängerfrage von mir
also ich habe hier einen towitoko kartenleser und in der doku steht beschrieben wie man über die dll zugreifen kann
ich bekomme das aber absolut nicht hin, ich hoffe mir kann da mal jemand helfen.
hier mal ein auszug:
'//DLL Funktion
Alle Aufrufe dieser Schnittstelle werden direkt an den SCardServer weitergegeben. Die Funktion
kehrt erst nach Bearbeitung des Kommandos durch den SCardServer zurück. Während das
Kommando ausgeführt wird, werden weiterhin Windows-Botschaften verarbeitet. Die SCARD
Schnittstelle kann rekursiv aufgerufen werden (in maximal 4 Ebenen).
Beide DLLs (16 Bit: SCARD.DLL, 32 Bit: SCARD32.DLL) exportieren die folgende Funktion:
Response = SCardComand (Handle,
Cmd, CmdLen,
DataIn, DataInLen,
DataOut, DataOutLen
);
LPINT Handle /* Zeiger auf einen 32 Bit signed integer */
LPSTR Cmd /* Zeiger auf einen null terminierten String */
LPINT CmdLen /* Zeiger auf einen 32 Bit signed integer */
LPSTR DataIn /* Zeiger auf ein array of byte oder einen String */
LPINT DataInLen /* Zeiger auf einen 32 Bit signed integer */
LPSTR DataOut /* Zeiger auf ein array of byte oder einen String */
LPINT DataOutLen /* Zeiger auf einen 32 Bit signed integer */
INT Response /* 32 Bit signed integer */
Handle - Falls mehrere Instanzen der DLL in einer Applikation benötigt werden, kann
dieses Handle benutzt werden, um entsprechende Objektinstanzen zu unterscheiden.
Der Wert kann auf null gesetzt werden, wenn nur eine Instanz benötigt
wird, der SCardServer übernimmt die Zuordnung dann über das Thread-
bzw. Taskhandle Ihrer Anwendung.
Cmd - SCardServer Kommando (nullterminierter String).
CmdLen - Bei verschlüsselter Kommunikation mit dem SCardServer die Länge des Kommandostrings,
bei unverschlüsselter Kommunikation muß Null übergeben werden.
DataIn - Zeiger auf den Puffer mit den Eingabedaten.
DataInLen - Länge der Eingabedaten.
DataOut - Zeiger auf den Puffer für die Ausgabedaten.
DataOutLen - Maximale Länge der Rückgabedaten, wird auf die tatsächliche Länge der Rückgabedaten
gesetzt.
Response - globaler Returncode, bei erfolgreicher Ausführung wird Null zurückgegeben.
hier auch ein beispiel für c(aus der doku):
typedef DWORD (__stdcall *SCardCmd)(LPDWORD Handle,
LPCSTR Cmd, LPINT CmdLen,
LPCSTR DataIn, LPINT DataInLen,
LPCSTR DataOut, LPINT DataOutLen);
(...)
SCardCmd pSCardCommand = NULL;
HANDLE hScardDLL = LoadLibrary("SCARD32.DLL");
if (hSCardDLL)
pSCardCommand = (SCardCmd)GetProcAddress(hScardDLL, "SCardComand");
muss ich da jetzt eine scard32.h erstellen und wie muss die aussehen?
wie greife ich dann anschließend so auf den kartenleser zu?
so --> SCardComand(Handle,nil,L,nil,M,nil,N);
die doku ist auch hier einzusehen: http://files.towitoko.de/ftp/docu/scrd214d.pdf
ich verwende DEV-c++
danke schon mal
mfg slower