Utilisation d'une dll
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
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=600, 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 ("TG.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


Je tiens par ailleurs a dire que seul le code TT=5 me demande la derniere variable DTMT comme une allocation d'un tableau de 144 bytes

Avec les autres codes j'arrive a générer les images tiff car il ne demande pas la derniere variable qui sert a coder l'image

Merci

Contribution le : 17/11/2006 18:26
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation d'une dll

Inscrit:
19/11/2002 12:20
Post(s): 390
Salut :)

Donc pour résumer ça marche tant que tu n'as pas TT=5 ce qui est le cas dans ton exemple?
Dans le cas où TT=5 il faut en fait fournir un pointeur vers un tableau pour DTMT?

Dans ce cas ta déclaration me paraît un peu étrange et l'affectation pareille.
Si c'est un tableau qui est attendu, pourquoi tu déclares ta chaîne DTMT comme une chaîne ASCIIZ sur 145?
Ca devrait être un tableau (ARRAY) de chaînes plutôt, non?

Dans la doc, ils ne te donneraient pas un exemple en C++ ou en VB que tu pourrais mettre ici pour voir?

Contribution le : 22/11/2006 08:47
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation d'une dll
Developpeur WDF
Inscrit:
10/02/2005 14:25
De Lille
Post(s): 123
Merci Imame de t'etre préoccupé de mon probleme.
J'ai trouvé pourquoi ca ne fonctionnait pas....

Apparemment, j'utilisais une dll mise a jour par le fournisseur

J'ai récupéré la premiere version de la dll et ca fonctionne. Ils ont du modifier le passage de parametres mais pas mis a jour le fichier .h...C'est la seule réponse que je puis supposé pour le moment...J'attend un retour du service technique

En fait, si j'utilise le convertisseur de fonction de WDAPI,
il me dit que le type LPBYTE est un entier

J'ai essayé d'exploiter la dll avec VB et appres plusieurs recherche j'ai trouvé sur le site de Microsoft que le type LPBYTE devait etre passer ByVal Var as String via VB et la ca a fonctionné mais j'ai des caractères bizarre au niveau du nom du fichier. Je pense a un probleme de typage de la chaine (ANSI-ASCII-UNICODE ???) du fait si je boucle pour generer plusieurs images il me renvoit aléatoirement des erreurs sur le prefixe du fichier.

Mais bon avec Windev le probleme est résolu

TT est entier long sans signe
TC est une chaîne
TD est une chaîne
PT est une chaîne
PR est entier long sans signe
IR est entier long sans signe
TS est réel sur 4 octets
DTMT est une chaîne

DTMT= Caract(0xFF)+ Caract(0x01)+Caract(0x06)+Caract(0xB4)+Caract(0xED)+...+Caract(0xFF)

TT= 5
TD="c:\"
PT=""
PR= 600
IR= 0
TS= 2.4

SI hInst = 0 ALORS
Erreur("Erreur lors du chargement")
SINON
TC= "M12345678A1234"
Controle= AppelDLL32("TagGener", "_TagGener@32", TT,TC,TD,PT,PR,IR,TS,DTMT)
FIN
DéchargeDLL(hInst)
Info(Controle)
FIN

Encore merci

Contribution le : 22/11/2006 16:57
_________________
Windev POOOOWWWWAAA!!!!!!
Créer un fichier PDF de la contribution Imprimer


Re: Utilisation d'une dll

Inscrit:
19/11/2002 12:20
Post(s): 390
Cool si ça marche ;)

Contribution le : 23/11/2006 00:52
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2