PB Release/debug

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 30 sept. 2004 à 18:19
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 - 1 oct. 2004 à 11:54
Bj

Je viens de constater un grave problème ds un soft que je viens de terminer (VC6)

en version debug, nickel tt OK

en version release, un évenement fait quitter le logiciel en plus de son trtt (les autres similaires passent bien)

C sur réception d'une modif sur une liste déroulante

à la fin j'ai:

OnSelChangeMaListe()
{
try
{
mes traitements
}
catch(...)
{
affichage d'erreur
}
AfxMessageBox("fin");
}

Le msg "fin" s'affiche et OK termine l'appli en mode release
(mais pas lors du premier passage au cours de l'initialisation)

ça fait 3 j que je galere avec ce truc & C super lourd !!!

vs trouverez l'exe concerné sur
http://steph.dall.online.fr/MP
et C le zip de la version 5.06
ds le module traduction pour les changements de langues...

Voila, j'ai essayer de donner un max d'explic
au cas ou ça puisse aider...

Si qqn a deja résolu un pb similaire...
Merci

Magic Nono: l'informagicien! 8-)

2 réponses

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
1 oct. 2004 à 11:47
qqn me dit que C ptet du à une gestion de la liste....

je vs met le code alors:

void DTraduct::OnSelchangeComboLangue(const bool valide)
{
/// --------------------------------------------------------------------
/// ---------------- DTraductions::OnSelchangeCombo() ----------------
/// --------------------------------------------------------------------
/// ----- Objectif : valide et passe a l'elt demandé
/// ----- Auteur(s) : Bruno CELLE 27/07/04
/// ----- PreCond : /
/// ----- PostCond : m_sMemLangue1, m_sMemLangue2, m_sMemData à jour
/// ----- Etat : 1 (-1<0<1<2)
/// --------------------------------------------------------------------
/// ----- Var : classes externes dont on appelle des méthodes (1) : BFichierIni
/// ----- Var Utilisées de la classe (6) : m_comboData ,m_comboLangue1 ,m_comboLangue2 ,m_sFicIni ,m_sLangue1 ,m_sLangue2
/// ----- Var Internes à la fonction (4) : lang1 ,lang2 ,plomp ,valeur
/// ----- Var In (4) : m_comboData ,m_comboLangue1 ,m_comboLangue2 ,m_sFicIni
/// ----- Var Out (1) : m_sLangue1
/// ----- Var In-Out (1) : m_sLangue2
/// algo : sécu
if(c_comboData.GetCount()==0 || c_comboLangue1.GetCount()==0)
return;
/// algo : valide
if(valide)
valider();
else
UpdateData(true);
CString plomp;
/// algo : maj des cadres des 2 langues & mem...
c_comboLangue1.GetWindowText(plomp);
c_staticLangue1.SetWindowText(plomp);
m_sMemLangue1=plomp;

c_comboLangue2.GetWindowText(plomp);
c_staticLangue2.SetWindowText(plomp);
m_sMemLangue2=plomp;

c_comboData.GetWindowText(plomp);
m_sMemData=plomp;

UpdateData(false);
/// algo : charger
charger();
}

void DTraduct::valider()
{
///algo : maj du fichier ini de la modif (si modif il y a eu)
//postCond : UpdateData(true) fait
/// algo : sécu
if(c_comboData.GetCount()==0 || c_comboLangue1.GetCount()==0)
return;
try
{
UpdateData(true);
/// algo : SI vide
if(m_sLangue2=="")
{
/// algo : SI pas videOK
if(!m_BVideOK)
{
BString plomp;
/// algo : SI un elt d'une fenetre
if(((BString)m_sMemData).endWith("__"))
{
/// algo : txt de cette langue + " - TOTRANSLATE " + (lang)
plomp=m_sLangue1;
plomp+=" - TOTRANSLATE (";
plomp+=m_sMemLangue1;
plomp+=')' ;
}
else /// algo : SINON
{
/// algo : "TRANSLATION TODO : " + langue + txt de cette langue
plomp="TRANSLATION TODO : ";
plomp+=m_sMemLangue1;
plomp+=" : " ;
plomp+=m_sLangue1;
}
/// algo : MeF
plomp=plomp.convertTxtMisEnForme(true);
plomp.winFormat(false);

/// algo : SAV

BFichierIni::set(m_sMemLangue2,m_sMemData,m_sFicIni,plomp);
}
}
else/// algo : SINON (donnée OK)
{
/// algo : SI changement
if(m_sLangue2!=m_sMemRep)
{
/// algo : MeF
BString plomp=m_sLangue2;
plomp.winFormat(false);
plomp=plomp.convertTxtMisEnForme(true);
/// algo : SaV
BFichierIni::set(m_sMemLangue2,m_sMemData,m_sFicIni,plomp);
}
}
}
TRAITE_EXCEPTION_B;
}

void DTraduct::charger()
{
/// --------------------------------------------------------------
/// ---------------- DTraductions::OnBCharger() ----------------
/// --------------------------------------------------------------
/// ----- Objectif : init données de ref & donnée réponse & affiche warning éventuel
/// ----- Auteur(s) : Bruno CELLE 27/07/04
/// ----- PreCond : m_sMemLangue1, m_sMemLangue2, m_sMemData à jour
/// ----- PostCond : m_sMemRep à jour
/// ----- Etat : 1 (-1<0<1<2)
/// --------------------------------------------------------------
/// ----- Var : classes externes dont on appelle des méthodes (1) : BFichierIni
/// ----- Var Utilisées de la classe (6) : m_comboData ,m_comboLangue1 ,m_comboLangue2 ,m_sFicIni ,m_sLangue1 ,m_sLangue2
/// ----- Var Internes à la fonction (4) : lang1 ,lang2 ,plomp ,valeur
/// ----- Var In (4) : m_comboData ,m_comboLangue1 ,m_comboLangue2 ,m_sFicIni
/// ----- Var Out (2) : m_sLangue1 ,m_sLangue2
/// algo : Sécu
if(c_comboData.GetCount()==0 || c_comboLangue1.GetCount()==0)
return;
try
{
UpdateData(true);
/// algo : init val langue1
BString plomp=BFichierIni::get(m_sMemLangue1,m_sMemData,m_sFicIni,false);
plomp=plomp.convertTxtMisEnForme(false);
plomp.winFormat(true);
m_sLangue1=plomp;
/// algo : init val langue2, MeF & mem rsltat (m_sMemRep)
m_sMemRep=BFichierIni::get(m_sMemLangue2,m_sMemData,m_sFicIni,false);
if(m_sMemRep=="default")m_sMemRep="";
else
{
m_sMemRep=m_sMemRep.convertTxtMisEnForme(false);
m_sMemRep.winFormat(true);
}
m_sLangue2=m_sMemRep;

/// algo : affichage éventuel du warning (si un elt de fenetre)
c_sWarning.ShowWindow((m_sMemData).endWith("__"));
/// algo : slection de la boite de réponse
c_sLangue2.SetFocus();
/// algo : curseur à la fin
c_sLangue2.SetSel(m_sMemRep.getLength(),m_sMemRep.getLength(),FALSE);
UpdateData(false);
/*
//c_sLangue2.SetSel(0,-1);// tt sélectionner
c_sWarning.ShowWindow(((BString)m_sMemValeur).endWith("__"));
UpdateData(false);
*/
}
TRAITE_EXCEPTION_B;
}

Magic Nono: l'informagicien! 8-)
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
1 oct. 2004 à 11:54
k

C po la derniere version,
OnSelchangeComboLangue n'a po le bloc try

et les analyse MP ne sont po à jour

mé le code est le mm

Magic Nono: l'informagicien! 8-)
0
Rejoignez-nous