PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Urgent : Pb utilisation dll C
Urgent : Pb utilisation dll C
Débuté par gg, 10 fév. 2006 15:00 - 3 réponses
Posté le 10 février 2006 - 15:00
Bonjour,
Je dois utiliser une dll écrite en C avec Windev. Le constructeur de cette dll m'a donné le code VB que j'ai testé et qui fonctionne :

Dim Err_ret As Long, num_chars As Long
Dim codeline As String * 500
Dim prtString As String * 50
Dim prtOffSet As Long
Dim MicrEnable As Long, _
OcrEnable As Long, _
EndorserEnable As Long, _
PrinterEnable As Long

EndorserEnable = 0
PrinterEnable = 0

Err_ret = CXL_ScanImgRun(codeline, num_chars, 0, prtString, prtOffSet, MicrEnable, OcrEnable, EndorserEnable, PrinterEnable)

Dans le code VB, la proedure prend la refenece de num_chars et pour les autres parametres la valeur.

J'aimerais pouvoir utiliser de la même facon cette dll mais mon code windev ne fonctionne pas :

SZCodeline est une chaîne fixe sur 500
SZPrtString est une chaîne fixe sur 100
Img_count = ImgSeq
NEndorserEnable = 0
gbPrinterEnable = 0
szprtstring = ""
szCodeline = ""
Num_chars = 0
Err_ret = API("BUsbLib.dll", "CXL_ScanImgRun", szCodeline, &Num_chars , 0, szPrtString, PrtOffSet,MicrEnable, OcrEnable, NEndorserEnable, gbPrinterEnable)


Avez vous une idée. Merci de votre aide car c'est assez urgent.
Posté le 10 février 2006 - 15:38
- en utilisantdes chaines asciiz à la place des chaines
fixes peut etre ?

- en dehors des deux chaines, quel est le type des autres variables ?

bon dev !
eric l

Guillaume Geneslay a écrit :
Bonjour,
Je dois utiliser une dll écrite en C avec Windev. Le constructeur de cette dll m'a donné le code VB que j'ai testé et qui fonctionne :

Dim Err_ret As Long, num_chars As Long
Dim codeline As String * 500
Dim prtString As String * 50
Dim prtOffSet As Long
Dim MicrEnable As Long, _
OcrEnable As Long, _
EndorserEnable As Long, _
PrinterEnable As Long

EndorserEnable = 0
PrinterEnable = 0

Err_ret = CXL_ScanImgRun(codeline, num_chars, 0, prtString, prtOffSet, MicrEnable, OcrEnable, EndorserEnable, PrinterEnable)

Dans le code VB, la proedure prend la refenece de num_chars et pour les autres parametres la valeur.

J'aimerais pouvoir utiliser de la même facon cette dll mais mon code windev ne fonctionne pas :

SZCodeline est une chaîne fixe sur 500
SZPrtString est une chaîne fixe sur 100
Img_count = ImgSeq
NEndorserEnable = 0
gbPrinterEnable = 0
szprtstring = ""
szCodeline = ""
Num_chars = 0
Err_ret = API("BUsbLib.dll", "CXL_ScanImgRun", szCodeline, &Num_chars , 0, szPrtString, PrtOffSet,MicrEnable, OcrEnable, NEndorserEnable, gbPrinterEnable)


Avez vous une idée. Merci de votre aide car c'est assez urgent.

Posté le 10 février 2006 - 16:47
A mon avis, il faut que tu passes les références de tes chaines en paramètre :

Err_ret = API("BUsbLib.dll", "CXL_ScanImgRun", &szCodeline, &Num_chars , 0, &szPrtString, PrtOffSet,MicrEnable, OcrEnable, NEndorserEnable, gbPrinterEnable)
Posté le 10 février 2006 - 17:41
Il faut définir les chaines comme étant de type ASCIIZ et passer l'adresse en utilisant "&"