From: Antonio on
As I can call this function that is found in a DLL :

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 */

C code

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");


from code VO

Thanks for the help


From: Juergen on
On 20 Feb., 18:26, "Antonio" <adebl...(a)inwind.it> wrote:
> As I can call this function that is found in a DLL :
>
> 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 */
>
> C code
>
> 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");
>
> from code VO
>
> Thanks for the help

And what exactly ist your question ?
(The DLL you describe is from a Towitoko ChipCard-Reader/Writer we use
for about 5 years)

We declare the "SCardComand" Function as followed and it works fine.

_DLL FUNCTION SCardComand (whandle AS PTR,;
Cmd AS PTR, CmdLen AS PTR,;
DataIn AS PTR, DataInLen AS PTR,;
DataOut AS PTR, DataOutLen AS PTR);
AS DWORD PASCAL:Scard32.SCardComand

Jürgen

From: Antonio on
I have to verify the PIN code of a smart card besides SCARD32.DLL
do they serve other dlls?

Thanks Anthony


From: Juergen on
On 20 Feb., 19:35, "Antonio" <adebl...(a)inwind.it> wrote:
> I have to verify the PIN code of a smart card besides SCARD32.DLL
> do they serve other dlls?
>
> Thanks Anthony

Hi Anthony,
may be it is in fact of my poor english, but i really don't know what
your problem is.

Towitoko-Readers/Writers are delivered with a hardware-driver. With
that driver they work fine. The SCARD32.DLL contains the API Function
to integrate the hardware into your Application.

So why should the hardware support other dll's?

The hardware reads or writes SmartCards, and you can control it with
the API-Function, what more do you want?

Jürgen

From: Malcolm Gray on
Antonio wrote:
> I have to verify the PIN code of a smart card besides SCARD32.DLL
> do they serve other dlls?

Do you mean you want to load the DLL dynamically and use
getprocaddress because it might not be there?