[R] Array de paramètres dans un DllCall

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
0xyg3n
Niveau 2
Niveau 2
Messages : 25
Enregistré le : jeu. 07 mars 2013 22:43
Status : Hors ligne

[R] Array de paramètres dans un DllCall

#1

Message par 0xyg3n »

Bonjour à tous,

Pour ma culture personnelle et pour améliorer mes connaissance sur AutoIt je me suis lancé dans une petit projet. A savoir, convertir des pdf en tif.
Après quelques recherches sur le sujet et savoir si c'est faisable avec AutoIt, je me suis dirigé vers GhostScript.
Ma première phase a été réussi avec succès, à savoir en faisant appel à la lib gsdll avec l'exe de GhostScript.
Maintenant j'aimerais approfondir mes connaissances sur l'utilisation des dll directement dans mon script (et donc de ne plus être dépendant de l'exe)
J'ai donc créé mes fonctions (création de l'instance, clôture de l'instance, etc.)
Cependant, je bloque sur la partie la plus importante :mrgreen: => l'appel de la fonction pour convertir.
Voici la doc:
La fonction:

Code : Tout sélectionner

int gsapi_init_with_args (void *instance, int argc, char **argv); 
 
Un exemple tiré de la doc:
► Afficher le texteExemple
Un second exemple en VB (dont je me suis pas mal inspiré):
► Afficher le texteExemple VB
Mais en essayant de transcrit ces fonctions en AutoIt, je suis confronté à un problème. L'appel des arguments dans la fonction.
Voici ce que j'ai mis:

Code : Tout sélectionner

$aRet = DllCall("gsdll32.dll","int","gsapi_init_with_args","int",$hInstance,"int",$iArgCount,"str",$aArgument)
$aArgument = l'Array des arguements (voir exemple1)
L'appel directement de l'array dans dllCall = Plantage AutoIt
Le passage par une DllStructureCreate = message du Callback (Error: /undefinedfilename in (\250,\237\001\250,\237\001\200\001?)" <= Ca c'est du nom de fichier :|)
L'Erreur doit se situer dans la construction de la Structure (dont je n'ai certainement pas compris le fonctionnement...cf ci-dessous
► Afficher le texteMa fonction
Merci d'être indulgent, c'est ma première utilisation des Dll dans mon code :mrgreen:
Si quelqu'un pourrait me guider et m'indiquer mes erreurs sur l'appel de plusieurs paramètres dans un DllCall j'en serais ravi.

Merci d'avance.

PS: je posterais tout mon code si besoin ce soir (quand je rentrerais et que j'aurais un peu nettoyé la gueule du truc)
Modifié en dernier par 0xyg3n le mer. 27 nov. 2013 19:34, modifié 3 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Array de paramètres dans un DllCall

#2

Message par sylvanie »

Bonsoir,
il s'agit de soucis de typage. Par contre de mon côté, j'arrive à lancer la dll, mais j'ai des erreur dans la conversion des .ps vers pdf. En sortie j'ai bien des fichiers binaires avec un header pdf 1.4, mais ils sont corrompus.
En attendant, voici comment j'appelle cette dll :
► Afficher le texte
Attention : si comme moi vous êtes sur une machine 64 bits, avec la dll installée en 32 bits, lancée le mode X86 et non X64

Bon courage
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
0xyg3n
Niveau 2
Niveau 2
Messages : 25
Enregistré le : jeu. 07 mars 2013 22:43
Status : Hors ligne

Re: [..] Array de paramètres dans un DllCall

#3

Message par 0xyg3n »

Salut !

Merci beaucoup pour ta réponse. J'ai effectué quelques tests en modifiant en conséquence de ce que je veux faire (pdf >> tif) et c'est parfait !
J'aurais pu chercher encore longtemps par moi même... Je me trompais déjà rien qu'à l'appel de l'instance ^^
Conclusion: j'ai encore beaucoup de lecture de documentation pour comprendre l'appel de dll dans le script.

Merci beaucoup !
Sujet mis en résolu :)
Répondre