|
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 "&" |
| |
| |
| | | |
|
| | | | |
| | |
|