Bonjour, Pour utiliser une DLL écrite en C, je dois passer une variable de type <structure> mais la dll renvoie un message d'erreur : paramètre invalide. Apparemment, ce sont les chaines de caractères définies dans la structure qui posent problème (elles sont vides ...). Quelqu'un pourrait-il me conseiller pour définir correctement cette structure en WinDev ?
Exemple: //WinDev //C _CARD est une structure eCard est un entier sur 2 octets //int eCard;enum{SIS,SAM} zSection est une chaîne //CHAR zSection[20] zPin est une chaîne //CHAR zPin[5] FIN sCARD est un _CARD sCARD:eCard = 1 //sCard.eCard= sCARD:zSection="" //strcpy(sCard.zSection,"") sCARD:zPin="3634" //strcpy(sCard.zPin,zSamPin->Text.c_str())
_GATE est une structure zCtm est une chaîne zDev est une chaîne zSlot est une chaîne FIN sGATE est un _GATE sGATE:zCtm="CTM1" //strcpy(sGate.zCtm ,zSamCtm->Text.c_str()); sGATE:zDev="CHERRY" //strcpy(sGate.zDev ,zSamDev->Text.c_str()); sGATE:zSlot="PLUGIN0" //strcpy(sGate.zSlot ,zSamSlot->Text.c_str());
//Appel de la DLL dans l'aaplication C de demo //BncsResOpen(HDL *phCtmHdl, LPSTR zPrompt, sCARD *psaCard, sGATE *psgGate, LPSTR zConfig, INT16 *piStatus); //Transcription de cet appel en WinDev: RCcode est un entier sur 2 octets //INT16 RC RCcode=AppelDLL32("BNCSW32.DLL","BncsResOpen", &hSAM , prompt , &sCARD , &sGATE , config , &uiSt ) //Message d'erreur de la DLL 23/08/2004 12:42:41:101 === SisLib Version 1.0.6k (c) === 23/08/2004 12:42:41:101 BncsResOpen... 23/08/2004 12:42:41:101 Verify mandatory input parameters 23/08/2004 12:42:41:111 zConfig :E:\WDProjects7\Polyclinic\exe\local.ini 23/08/2004 12:42:41:111 sGate :zCtm=,zDev=,zSlot= 23/08/2004 12:42:41:121 eCard :1 or SAM 23/08/2004 12:42:41:131 wrong slotname syntax (EXTERN? or PLUGIN?) :
23/08/2004 12:42:41:131 BNCS Error = -206:parameter in the call is invalid 23/08/2004 12:42:41:141 BNCS Error = -206,parameter in the call is invalid
Merci d'avance Yvan |