Valentintinmar
Messages postés15Date d'inscriptionjeudi 4 juin 2009StatutMembreDernière intervention21 août 2009
-
20 août 2009 à 17:20
Valentintinmar
Messages postés15Date d'inscriptionjeudi 4 juin 2009StatutMembreDernière intervention21 août 2009
-
21 août 2009 à 09:11
Bonjour à tous,
Je travaille sur un programme dévellopé sur Visual C++ en unicode, le programme est construits avec plusieurs .cpp et plusieurs .h
Je souhaiterai qu'à la fermeture de mon programme, il utilise la fonction de sauvegarde de données.
Dans AppOPCClient.cpp
ma fonction est définie ainsi :
void CAppOPCClientApp::OnItemExport()
{
...
Procédure de sauvegarde
...
}
Et elle est déclarée dans AppOPCClient.h de la manière suivante :
public:
//{{AFX_MSG(CAppOPCClientApp)
afx_msg void OnItemExport();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
à la fermeture de mon programme, dans MainFrm.cpp
void CMainFrame::OnClose()
{
if (bNew==true)
{
CString pit1="The item list has been changed, would you like to Save it before closing ?";
CString pit2="Warning";
//MessageBox(pit1,pit2,MB_OKCANCEL);
if (MessageBox(pit1, pit2, MB_OKCANCEL)== IDOK)
{
CAppOPCClientApp::OnItemExport();
}
}
bool bStop = StopTimer(IDT_TIMER_SCREEN_REFRESH);
if (false==bStop)
TRACE(_T("Failed to stop Refresh Timer"));
bStop = StopTimer(IDT_TIMER_READ_MODE);
if (false==bStop)
TRACE(_T("Failed to stop Read Timer"));
CFrameWnd::OnClose();
}
à la complation j'obtiens alors l'erreur suivante :
error C2352: 'CAppOPCClientApp::OnItemExport' : appel non conforme d'une fonction membre non static, voir la déclaration de 'CAppOPCClientApp::OnItemExport'
Je suis débutant (ce qui n'est pas une excuse) mais même en fouillant sur les différents forums/faq je n'arrive pas à obtenir un résultat convaincant, toute aide est donc la bienvenue ^^
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 20 août 2009 à 21:31
La fonction que tu souhaites appeler n'est pas statique, elle est associée à une instance de classe particulière; tu crées bien quelque part une instance de CAppOPCClientApp, alors c'est cet objet qu'il faut utiliser pour appeler la fonction.
C'est un problème de cohérence : tu essaies d'appeler une fonction qui travaille avec des données membres de classe, mais sans lui dire sur quel objet travailler.