[..] Crash AutoIt : DllCall appelant dll Labwindows

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
KrisKenshin
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mar. 14 juin 2011 16:20
Status : Hors ligne

[..] Crash AutoIt : DllCall appelant dll Labwindows

#1

Message par KrisKenshin »

Bonjour à tous,

Rare sont mes apparitions sur ce forum (réponses souvent trouvées après quelques recherches), mais là je dois avouer que je coince radicalement.

Mon besoin est simple : piloter des IHM d'un programme développé sous Labwindows, en utilisation les fonctions de la dll associée. Cette procédure a pour but de contourner l'absence de control ID sur ces IHM spécifiques (impossibilité donc d'utiliser des fonctions du type "ControlClick") et d'éviter de se rabattre sur un "jonglage" de Send("{TAB}").

J'ai en ma possession la dll et le .h associé, contenant les prototypes des fonctions contenues dans la dll. Exemple de prototype de fonction :

Code : Tout sélectionner

int __declspec(dllexport) __stdcall CloseIHM()
Là où ça coince, c'est que lors de l'utilisation de "DllCall" pour faire appel à "CloseIHM" contenue dans la dll, AutoIt crash (chemin de la dll trouvée, et fonction trouvée pourtant...). Exemple d'utilisation de "DllCall" :

Code : Tout sélectionner

;Lancement du programme avec "Run"
;code

;Appel d'une fonction de pilotage d'IHM
DllCall("chemin_dll.dll", "int", "CloseIHM") ;également testé : DllCall("chemin_dll.dll", "int:cdecl", "CloseIHM") 
 
Résultat : crash d'AuroIt...
Ma question est donc la suivante : Est-ce la syntaxe du protype de fonction contenue dans la dll qui pose problème à AutoIt, ou bien tout autre problème que je n'aurai pas encore identifié???

Merci d'avance pour les réponses que vous pourriez apporter.
Cordialement,
KK
tanguy53
Niveau 3
Niveau 3
Messages : 41
Enregistré le : ven. 30 sept. 2011 15:34
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#2

Message par tanguy53 »

Salut la communauté,
Salut Kriskenshin,

Le problème que tu soulèves m'interesse beaucoup. J'ai développé un programme sous LabWindow CVI, et je souhaite utiliser les fonctions de la dll que j'ai généré.
Tout comme toi, le logiciel crash à l'appel de la fonction.

Au boulot on vient de centraliser toute notre gestion sur https://www.setinup.com/, ça nous a évité pas mal de plantages liés à des outils qui ne communiquaient pas entre eux.

Tanguy
Modifié en dernier par tanguy53 le lun. 06 juil. 2026 13:57, modifié 1 fois.
tanguy53
Niveau 3
Niveau 3
Messages : 41
Enregistré le : ven. 30 sept. 2011 15:34
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#3

Message par tanguy53 »

Salut, je vois que la question fait peur! ^^
Est ce que quelqu'un a déja utilisé autoit pour piloter des dll générées sous LABWindows?
tanguy53
Niveau 3
Niveau 3
Messages : 41
Enregistré le : ven. 30 sept. 2011 15:34
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#4

Message par tanguy53 »

Personne ne peut apporter une réponse? quelle soit négative ou positive =)
Cordialement
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#5

Message par Tlem »

Heuu, une réponse négative n'est pas franchement des plus intéressante, mais si cela peut vous rassurer : Non, je n'ai jamais utilisé AutoIt pour piloter une dll générée sous LABWindows !

D'ailleurs, comme je n'ai pas encore demandé à mon grand ami G....., je ne sais pas ce qu'est LABWindows. :oops:

Ceci dit, pour 'piloter' une dll, il faut en avoir la documentation complète, car si vous ne donnez pas les bonnes valeurs en argument, vous allez droit à l’échec.
J'ai la fainéantise de chercher pour vous, mais si vous cherchez sur le forum, vous trouverez un lien vers un document Anglais parlant du 'pilotage' des dll qui pourrait peut être vous être utile.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#6

Message par jchd »

La DLL et le script sont-ils bien tous les deux 32 ou-exclusif 64 bits ?
Le mélange n'est pas possible.
Avec quel compilateur est réalisée la DLL (possibilité de conventions d'appel déviantes, auxquelles je crois peu en l'occurence) ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
tanguy53
Niveau 3
Niveau 3
Messages : 41
Enregistré le : ven. 30 sept. 2011 15:34
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#7

Message par tanguy53 »

La DLL et le script sont tous les deux issus d'un 32 bits

De plus le compilateur de la DLL est visual C/C++
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Crash AutoIt : DllCall appelant dll Labwindows

#8

Message par jchd »

Mouais, il y a autre chose. Seul problème : je vois mal quoi d'ici.
Il faudrait regarder ça sous debugger. Recompile avec les options qui vont bien et jette un oeil sur le point d'entrée d'une fonction simple bidon qui fait f(x) -> x+1.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre