Voila apres un moment je reviens cette fois avec plus d'explications sur un code pour passer des valeurs.
Donc, j'ai un programme de gestion de systeme de detection et de camera.
Voila ayant ajoute a mon programme d'autres options (une deuxieme camera) j'ai du changer certaines choses notament le passage de donnees par l'intermediaire d'une struct (car sinon je devais me lancer dans des conversion de types au niveau des retours de types et ca devenait complique si j'ai d'autres passages etc..)
Maintenant j'ai un code plus propre pour passer mes valeurs, j'ai utilisé un struct pour renvoyer à la fois l'erreur (FSRteVal) et la camera correspondant (bool).
Et ces erreurs pointent en partie sur le prototype de ma fonction isProblemeStereo() au niveau du header comme ce qui suit:
inut;
}sNoprob;
//////////////////////////////////////
Le retour de ma fonction IsProblem() a changé egalement:
////////////////////////////////////
sNoprob CMy99090Doc::isProblemeStereo() {
sNoprob inter;
inter.FStmpint = FS_SUCCESS;
if(m_pThreadStereo1->m_initstereostatus==FS_SUCCESS && m_pThreadStereo2->m_initstereostatus==FS_SUCCESS)
return inter;
if (m_pThreadStereo1->m_initstereostatus!=FS_SUCCESS || m_pThreadStereo2->m_initstereostatus!=FS_SUCCESS)
if (m_pThreadStereo1)
{ if (m_pThreadStereo1->isProbleme())
inter.bster = 0;
inter.FStmpint = m_pThreadStereo1->m_initstereostatus ;
}
else if (m_pThreadStereo2)
{ if (m_pThreadStereo2->isProbleme())
inter.bster = 1;
inter.FStmpint = m_pThreadStereo2->m_initstereostatus ;
}
return inter;
}
////////////////////////////////
Voici ma fonction OntImer() (pour l'affichage des erreurs d'initialisations a l'initialisation):
/////
.........
if(m_Init.Get_Params_General_ModeProcess ()==PROCESS_SAS_AUTOMATIQUE)
{
if(uiSecurity& LEVEL_1)
{
//CStereo m_bvercam;
sNoprob initstereostatus=pDoc->isProblemeStereo();
if(initstereostatus.FStmpint)
m_ListeStereo.ResetContent ();
else
m_bPblStereo=false;
if (initstereostatus.bster)
{switch(initstereostatus.FStmpint)
{
case FS_ERROR_LOW_MEMORY:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_OPEN_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_CONFIG_FORMAT:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_CREATE_PROCESS:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_COMMUNICATION_LOST:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_DISK_FULL:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_EXECUTE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_UNKNOWN:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CAMERA_NOT_FOUND:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_NUMBER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 1 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
}
}
else
{
switch(initstereostatus.FStmpint)
{
case FS_ERROR_LOW_MEMORY:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_OPEN_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_CONFIG_FORMAT:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER_IN_CONFIG_FILE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_BAD_PARAMETER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_CREATE_PROCESS:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_COMMUNICATION_LOST:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_DISK_FULL:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CANNOT_EXECUTE:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_UNKNOWN:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_CAMERA_NOT_FOUND:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
case FS_ERROR_NUMBER:
m_bPblStereo=true;
strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
m_ListeStereo.AddString (strDatalist);
break;
}
}
if(pDoc->isIniteStereo())
m_bStereo=true;
else
m_bStereo=false;
}
else
{
m_bPblStereo=false;
m_bStereo=true;
}
if(pDoc->isProblemeModbus())
m_bPblModbus=true;
else
m_bPblModbus=false;
if(pDoc->isInitModbus())
m_bModbus=true;
else
m_bModbus=false;
}
UpdateData(false);
.........
}
///////////////////////////////////////////
Je pensais que l'erreur venait de %s dans l'instruction : strDatalist.Format ("Explication Stereo 2 %s", FSRetVal_Names[initstereostatus.FStmpint]);
mais en remplaçant ca par ceci rien n'a changé
: strDatalist.Format ( Explication Stereo 2 : FS_ERROR_CAMERA_NOT_FOUND);
D'ou peut venir les erreurs ?
Dois-je faire un pointeur sur ma struct, et comment ?
Merci