MyExcel , execution multiple imposible

Signaler
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010
-
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010
-
Bonjours,

MyExcel => http://www.cppfrance.com/codes/AUTOMATION-EXCEL-ENTIEREMENT-WIN32-SOUS-FORME-CLASSE_44276.aspx

j'utilise actuellement la classe myExcel pour générer un fichier excel a partir d'un base déjà existant. Lorsque j'exécute mon script dans le programme, la premier foi ça marche parfaitement mais si je le relance après, ça me fait planter le programme.

es-que vous auriez une idée de où ça pourrai venir ?

5 réponses

Messages postés
1115
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
6 mai 2021
4
ca plante !! tu n'es pas mieux comme explication ? Ca ne va pas beaucoup nous aider.

Quelle fonction ou appel de fonction a planté ?
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010

Après plusieurs tests je peut dire que a l'appel de n'importe quel fonction après le NewExcel() ou RecupExcel() m'affiche des message d'erreur avent de me fermer l'application.
Je vais relever les message d'erreur, des que je pourrai relance Visual (vive la maintenance informatique)
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010

J'ai oublier de dire que dans excel.cpp j'ai modifier le méthode Realease car elle effacer pas toute le variante et que le bug venait peut être de là.

void MyExcel::Release(void) {

VariantClear(&xlApp);
VariantClear(&xlBooks);
VariantClear(&xlBook);
VariantClear(&xlSheet);
VariantClear(&strVariant);
VariantClear(&lgVariant);
VariantClear(&cellValue);
VariantClear(&cellRange);
VariantClear(&arr);
VariantClear(&xlFont);
}
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010

Voila les action que je fait lors de la 1er exécution au qui ce passe apatament bien.

MyExcel meDocExcel;
meDocExcel.NewExcel();
meDocExcel.SetVisible(true);
meDocExcel.Open(TruePath("\\../Document_type.xls"));
meDocExcel.GetWorksheet(1);
meDocExcel.SetData(...,...);
...
...
...		
meDocExcel.Quit();// Test avec on sans = même résultat


Lors de la deuxièmement exécution de ce même code voila les erreur que cela me donne :

- Ligne "meDocExcel.SetVisible(true);"
"AutoWarp()"
"IDispatch::GetIDsOfNames("Visible") failed w/err 0x800401fd"

- ligne "meDocExcel.Open(TruePath("\\../Document_type.xls"));"
"Microsoft Visual Studio"
"Unhandled exception at 0x0058c9d6 in
NomDeMomProgramme.exe : 0xC0000005 : Access Violation
reading location 0xfeeeff02."
Messages postés
19
Date d'inscription
lundi 2 avril 2007
Statut
Membre
Dernière intervention
1 juin 2010

J'ai réussie identifier le problème :)
Apparemment la VARIANT et mal détruit ou initialiser... enfin je sais pas trop.

Pour l'instant pour corriger le problème j'ai rajouter cette ligne dans le destructeur.
xlApp.pdispVal = 0;


Mais c'est vraiment pas propre comme solution. Si vous avais une idée ou un solution pour corriger le problème je suis prennent.