ok !bon je vais détailler....
j'ai une structure CCDL avec diverse information :
struct CCDL {unsigned char mode,
timer,
result,
text,....et d'autre
};
j'ai une boite de dialogue avec sa classe associé CTest_timingDlg.
dans cette boite de dialogue je crée 2 pointeur sur ma structure ,puis j'initialise leur variables :
donc dans test_timingDlg.h je fait:
CCDL * camera1;
CCDL * camera2;
dans test_timingDlg.cpp ,dans l'initdialog je fait :
camera1 = new CCDL;
camera2 = new CCDL;
camera1->mode = 128;
camera1->timer= 0;
...etc
camera2->mode = 128;
camera2->timer= 0;
...etc
jusque la tout va bien, j'ai bien mon pointeur qui s'initialise correctement et la structure qui se remplit!!
le pb c'est quand je veux faire passer cette structure toute belle a une autre fonction situer dans un autre fichier
donc je reprend:
sur ma boite de dialogue j'ai un bouton demarrer qui va me lancer une acquisition sur ma camera, ces valeur vont etre placer dans ma structure puis traité, la methode qui les traite s'appelle traite_camera et ce situe dans gestion_camera.cpp.donc au debut de ma fon ction j'appelle mon pointeur camera1:
struct CCDL * pDlg =_pCcd::Instance()->TheCTest_timingDlg->camera1;
j'explique ce que je fait ( donc ce qui devrait marcher !!):
j'initialise un pointeur pDlg de type structure CCDL .Pour cela je vais chercher le pointeur camera1 dans l'instance de ma boite de dialogue ( vous suivez toujours???).mais le pb c'est que j'ai perdu mon pointeur pDlg vaut 0xcdcdcdcd c'est a dire rien!!!!
pour ceux qui veulent pousser dans le détail voila comment je fait l'instance
donc dans le fichier _pCcd.h
#include "test_timingDlg.h"
#include "Gestion_Camera.h"
class CGestion_Camera;
class CTest_timingDlg ;
class _pCcd
{
public:
_pCcd();
virtual ~_pCcd();
static _pCcd * Instance();
static _pCcd * _instance;
CTest_timingDlg * TheCTest_timingDlg;
CGestion_Camera * TheCGestionCamera;
_pCcd * TheC_Ccd;
};
et dans le fichier _pCcd.cpp :
#include "stdafx.h"
#include "test_timing.h"
#include "_pCcd.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
_pCcd::_pCcd()
{
TheCTest_timingDlg = new CTest_timingDlg;
TheCGestionCamera = new CGestion_Camera;
this->_instance = this;
}
_pCcd::~_pCcd()
{
}
_pCcd * _pCcd::_instance;
_pCcd * _pCcd::Instance()
{
if(_instance ==0)
{
_instance = new _pCcd;
}
return _instance;
}
Bon je pense avoir assez détailler, merci de m'aider c'est pour un projet urgent !!!
je remercie donc d'avance toute les réponse !!!