PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → AutomationEvénement déclenche une "Erreur systeme : Access violation (GPF)"
AutomationEvénement déclenche une "Erreur systeme : Access violation (GPF)"
Débuté par David BRETANT, 22 jan. 2026 12:16 - Aucune réponse
Membre enregistré
3 messages
Posté le 22 janvier 2026 - 12:16
Bonjour,

Dans une application connectée à une commande numérique, un opérateur clic sur un bouton pour effectué différentes tâches.

L'application récupère et affiche la position des axes numériques dans des champs de la fenêtre principale.

La communication avec la commande numérique est réalisée via un objet automation qui déclenche un évènement à chaque changement de position d'axe.


Le clic sur le bouton démarre un cycle de fonctionnement:

BOUCLE
SI bArret ALORS SORTIR
....

.....
Multitâche(-10)
FIN


J'intercepte l'évènement en utilisation la fonction AutomationEvénement avec la syntaxe:

AutomationEvénement(<Procédure ou méthode> , <Objet automation> , <Interface> , <Événement>)

Maprocedure, déclenchée par AutomationEvénement, mémorise les positions et les affiche dans dans des champs de la fenêtre principale.

Procedure MaProcedure(vtArrayIndex, vtArrayValue)

iIndice est un entier =0
iIndiceMax est un entier = TableauInfo(vtArrayIndex,tiDimension) //Dimension du tableau d'index

iIndex est un entier = 0 //Valeur contenu dans le tableau vtArrayIndex
iValeur est un entier = 0 //Valeur contenue dans le tableau vtArrayValue
sNomAxe est une chaîne = ""
iLigneTable est un entier = 0

POUR iIndice=1 _À_ iIndiceMax

iIndex = vtArrayIndex[iIndice]
iValeur = vtArrayValue[iIndice]

tAllValuesAxes[iIndex+1] = iValeur

FIN

POUR iAxe=1 _À_ tAllValuesAxes..Occurrence
sPosAxe[iAxe] = tAllValuesAxes[iAxe]
FIN

//Le Dump d'erreur pointe ici


Mais, 1 à 2 fois par semaine, l'erreur suivante est générée bloquant l'application:

Module : wd230vm.dll
Version du module : 23.0.370.1
VI : 01F230053k
Adresse de base : 6A7D0000
Erreur systeme : Access violation (GPF)
EIP = 6A9E782C
OS : Windows 10.0 (10.0.14393)

Le Dump d'erreur récupéré pointe systématiquement à la fin de Maprocedure sans indiquer de ligne en particulier. La pile des appels montre l'appel à Multitache(-10) juste avant

EIT_PILEWL :
Procédure locale Maprocedure (FenPrincipale.PROCEDURE.Maprocedure)
Procédure locale DepartCycle (FenPrincipale.PROCEDURE.DepartCycle), ligne 161 ( correspond au Multitache(-10) )


Pensant que le problème venait de l'affichage, je l'ai supprimé mais ça n'a rien changé.
Procedure MaProcedure(vtArrayIndex, vtArrayValue)

iIndice est un entier =0
iIndiceMax est un entier = TableauInfo(vtArrayIndex,tiDimension) //Dimension du tableau d'index

iIndex est un entier = 0 //Valeur contenu dans le tableau vtArrayIndex
iValeur est un entier = 0 //Valeur contenue dans le tableau vtArrayValue
sNomAxe est une chaîne = ""
iLigneTable est un entier = 0

POUR iIndice=1 _À_ iIndiceMax

iIndex = vtArrayIndex[iIndice]
iValeur = vtArrayValue[iIndice]

tAllValuesAxes[iIndex+1] = iValeur

FIN

//POUR iAxe=1 _À_ tAllValuesAxes..Occurrence
// sPosAxe[iAxe] = tAllValuesAxes[iAxe]
//FIN

//Le Dump d'erreur pointe ici


La procédure déclenchée par AutomationEvénement est elle exécutée dans le Thread principale ou dans un secondaire ?

Est ce que quelqu'un aurait une idée pour solutionner le problème ?
Je suis preneur de toutes remarques et solutions.

Merci pour vos réponses

David