|
Iniciado por Pascal Lemaire, 17,nov. 2006 10:59 - 2 respuestas |
| |
| | | |
|
| |
Publicado el 17,noviembre 2006 - 10:59 |
Bonjour,
J'ai un gros soucis avec l'appel d'une DLL C++ utilisée pour la lecture de carte électronique sur PPC
Header de la DLL :
SPRINGCARD_LIB LONG SPRINGCARD_API SCardListReaders(IN SCARD_CONTEXT_T hContext, IN LPCTSTR mszGroups, OUT LPTSTR mszReaders, IN OUT LPDWORD pcchReaders);
Appel en C
char [] SCardReaders= new char [1024]; uint len; ... len= 1024; rc = SCARD.ListReaders (SCardContext, null, SCardReaders, ref len); ...
En windev
nRcard est un entier nLen est un entier sSCardReaders est une chaîne sur 1024
... nLen = 1024 nRCard=API( "springcard.dll", "SCardListReadersW", gnScardContext, null, sSCardReaders, &nLen )
J'ai systématiquement l'erreur "Le paramètre 3 n'est pas d'un type valide pour AppelDLL()"
Idem si chaine, buffer ou buffer sur 1024
Une idée ????
Merci
Pascal Lemaire |
| |
| |
| | | |
|
| | |
| |
Publicado el 17,noviembre 2006 - 14:09 |
Petit complément d'information
typedef char TCHAR; typedef TCHAR *LPTSTR; |
| |
| |
| | | |
|
| | |
| |
Publicado el 18,noviembre 2006 - 08:13 |
Bonsoir,
J'ai un gros soucis avec l'appel d'une DLL C utilisée pour la lecture de carte électronique sur PPC
Header de la DLL :
SPRINGCARD_LIB LONG SPRINGCARD_API SCardListReaders(IN SCARD_CONTEXT_T hContext, IN LPCTSTR mszGroups, OUT LPTSTR mszReaders, IN OUT LPDWORD pcchReaders);
Appel en C
char [] SCardReaders= new char [1024]; uint len; .. len= 1024; rc = SCARD.ListReaders (SCardContext, null, SCardReaders, ref len); ..
En windev
nRcard est un entier nLen est un entier sSCardReaders est une chaîne sur 1024
.. nLen = 1024 nRCard=API( "springcard.dll", "SCardListReadersW", gnScardContext, null, sSCardReaders, &nLen )
J'ai systématiquement l'erreur "Le paramètre 3 n'est pas d'un type valide pour AppelDLL()"
Idem si chaine, buffer ou buffer sur 1024
Une idée ????
- Avec WinDev mobile les chaines sont par défaut en Unicode. Donc si en C le type char fonctionne, je pense qu'il faut utiliser : sSCardReaders est un Buffer fixe sur 1024 - Pour moi, le troisième parametre dont parle l'erreur ne désigne pas sSCardReaders mais gnScardContext (Troisième paramêtre passé à la fonction API)
Cordialement, Guillaume M. |
| |
| |
| | | |
|
| | | | |
| | |
|