Erreur système lors de la libération de tableaux dynamiques

Posté par nrobin le 8/6/2007 8:48:32
Bonjour,
dans un projet sous WinDev 8 je lit un flux XML et je stocke les données récupérées dans diverses variables dont plusieurs tableaux dynamique.
A la fin, je trace toutes les données récupérées pour vérifier quelles sont valides et jusque là tout va bien. Les données renvoyées sont les bonnes.

Mais lorsque je ferme le projet, une erreur W-Langage est générée:
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
 - une description des circonstances de l'incident
 - les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
 - les informations techniques suivantes

Détails techniques :

Module : WDTST.EXE
Version du module : 8.00Bda
VI : 01-80315j 
Adresse de base : 00000000
Erreur système : Access violation (GPF)
EIP = 00000001
OS : Windows XP ou .NET Service Pack 2(5.1.2600)


**********************************************

Informations techniques

Projet : Lecteur de flux XML AlphaAide

Dump de l'erreur du module <WD80VM.DLL> <8.00Jv>.

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 1020

- Code erreur WD55 : 0

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
Une erreur système inattendue est survenue.
Si cet incident se produit de manière systématique lorsque vous exécutez les mêmes manipulations, il est conseillé de transmettre au Support Technique Gratuit :
 - une description des circonstances de l'incident
 - les lignes de code, une fenêtre ou un projet permettant de reproduire le problème
 - les informations techniques suivantes

Détails techniques :

Module : WDTST.EXE
Version du module : 8.00Bda
VI : 01-80315j 
Adresse de base : 00000000
Erreur système : Access violation (GPF)
EIP = 00000001
OS : Windows XP ou .NET Service Pack 2(5.1.2600)

- Infos de debug :
Registres :

  EIP = 00000001    EBP = 00914330
  EAX = 0093E900    EBX = 009410D0
  ECX = 0093F698    EDX = 25F1B5D0
  ESI = 00942320    EDI = 00000000

Pile des appels :

[WDTST.EXE (00000000), 8.00Bda, 01-80315j ]	00000001
[WDTST.EXE (00000000), 8.00Bda, 01-80315j ]	02D70091
Pile invalide


- Pas d'info attachée

- Identifiant dans le .err : 1020


Je pensais que cela était dû au fait que je ne libérait pas manuellement tous les tableaux dynamiques qui ont été générés alors à la fin du projet, je les libére tous mais du coup, la même erreur est générée lors de cette libération et non plus à la fermeture du projet. J'en ai déduit que la mémoire réservée par les tableaux était automatiquement libérée lors de la fermeture du projet. Seulement, cela ne répond pas à ma problématique pour autant.

Voici le code utilisé pour la libération de la mémoire:
// Libération des tableaux dynamiques utilisés
numClient = 0
numProduits = 0
nbProduits = Dimension(Tab_XML_Lu_Produits)
POUR numProduits = 1 A nbProduits
	libérer Tab_XML_Lu_Produits[numProduits]:Propriétés:CodePropriété
	libérer Tab_XML_Lu_Produits[numProduits]:Propriétés:Valeur
FIN

numClient = 0
numProduits = 0
nbClients = Dimension(XML_Lu_Clients)
POUR numClient = 1 A nbClients
	nbProduits = Dimension(XML_Lu_Clients[numClient]:XML_Lu_Produits)
	POUR numProduits = 1 A nbProduits
		libérer XML_Lu_Clients[numClient]:XML_Lu_Produits[numProduits]:Propriétés:CodePropriété
		libérer XML_Lu_Clients[numClient]:XML_Lu_Produits[numProduits]:Propriétés:Valeur
	FIN
FIN

numClient = 0
numProduits = 0
nbClients = Dimension(XML_Lu_Clients)
POUR numClient = 1 A nbClients
	libérer XML_Lu_Clients[numClient]:XML_Lu_Produits
FIN



Comment puis-je faire pour me débarrasser de cette erreur système?


Merci d'avance.

Nicolas ROBIN

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=5199&post_id=21451