PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Utilisation dll
Utilisation dll
Débuté par Nicolas, 16 nov. 2006 10:33 - 1 réponse
Posté le 16 novembre 2006 - 10:33
Bonjour,

J'ai une dll avec le fichier .h qui doit générer des images tiff selon la variable TC

Dans le fichier .h j'ai la fonction comme suit :

DWORD _stdcall Fonction(DWORD TT, LPCSTR TC="000000", LPCSTR TD="\0", LPCSTR PT="\0", DWORD PR`0, DWORD IR=INK_RUN_OK,FLOAT TS=2.4, LPBYTE DTMT=NULL);

et voila mon code :

TT est entier
TC est chaîne ASCIIZ sur 15
TD est chaîne ASCIIZ sur 256
PT est chaîne ASCIIZ sur 256
PR est entier
IR est entier
TS est réel sur 4 octets
DTMT est chaîne ASCIIZ sur 145
Controle est entier
Controle = 1

DTMT= Caract(Val("FF","x")) +...+ Caract(Val("FF","x")) +Caract(0) //Longue chaine Hexadecimal

TT= 5
TC= "A12345678M1234" +Caract(0)
TD= Caract(0)
PT= Caract(0)
PR= 300
IR= 0
TS= 2.4

hInst est un entier
hInst = ChargeDLL ("TagGener.DLL")

SI hInst = 0 ALORS
Erreur("Erreur lors du chargement")
SINON
Controle = AppelDLL32("TG", "_TG@3", TT,&TC, &TD,&PT,PR,IR,TS,&DTMT)
Info(Controle)
DéchargeDLL(hInst)
FIN

Le controle me retourne bien 0 mais aucune image tiff n''est généré hors d'apres la doc tout est correct si le code retourné est 0
Posté le 16 novembre 2006 - 11:41
en vrac qqs pistes :
- DTMT est un "BYTE *" et devrait etre :
DTMT est entier sans signe sur 1
mafonction(...,&DTMT,...)
- remplace les chaine asciiz par des chaines standards de windev et
passe les "directement" en paramètre sans préfixer par "&"
- remplacer les "entier" par des "entier sans signe sur 4" (normalement
inutile)

bon courage,
eric l.

> Nicolas a écrit :
Bonjour,

J'ai une dll avec le fichier .h qui doit générer des images tiff selon la variable TC

Dans le fichier .h j'ai la fonction comme suit :

DWORD _stdcall Fonction(DWORD TT, LPCSTR TC="000000", LPCSTR TD="\0", LPCSTR PT="\0", DWORD PR`0, DWORD IR=INK_RUN_OK,FLOAT TS=2.4, LPBYTE DTMT=NULL);

et voila mon code :

TT est entier
TC est chaîne ASCIIZ sur 15
TD est chaîne ASCIIZ sur 256
PT est chaîne ASCIIZ sur 256
PR est entier
IR est entier
TS est réel sur 4 octets
DTMT est chaîne ASCIIZ sur 145
Controle est entier
Controle = 1

DTMT= Caract(Val("FF","x")) +...+ Caract(Val("FF","x")) +Caract(0) //Longue chaine Hexadecimal

TT= 5
TC= "A12345678M1234" +Caract(0)
TD= Caract(0)
PT= Caract(0)
PR= 300
IR= 0
TS= 2.4

hInst est un entier
hInst = ChargeDLL ("TagGener.DLL")

SI hInst = 0 ALORS
Erreur("Erreur lors du chargement")
SINON
Controle = AppelDLL32("TG", "_TG@3", TT,&TC, &TD,&PT,PR,IR,TS,&DTMT)
Info(Controle)
DéchargeDLL(hInst)
FIN

Le controle me retourne bien 0 mais aucune image tiff n''est généré hors d'apres la doc tout est correct si le code retourné est 0