bonjour
voila j'ai donc un pb avec les pointeurs sur fonction.
J'ai commenc� par d�finir le type suivant :
puis j'ai ensuite cr�� la classe suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part typedef void (*fcnWrite)(std::string strMessage,int nType);
la m�thode SetWriteFunction affecte tout b�tement la fonction pass� en param�tre � la variable membre "m_pWrite"
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13 class __declspec(dllexport) CLogger { private: fcnWrite m_pWrite; ..................................... // Sets public: void SetWriteFunction(fcnWrite Write); };
voici comment j'utilise la classe :
avec pour m�thode Write suivante :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 void CTestUtilsDlg::OnOk() { CLogger log; log.SetWriteFunction(Write); }
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6 void CTestUtilsDlg::Write(std::string strMessage, int nType) { CString test = strMessage.c_str() ; m_edittest.SetWindowText(test); }
Enfin voici l'erreur qui est g�n�r�e :
est ce quelqu'un saurait d'o� cela vient ? car moi je suis compl�tement perdu la :sC:\sebastien\project\testUtils\testUtilsDlg.cpp(182) : error C2664: 'SetWriteFunction' : cannot convert parameter 1 from 'void (class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)' to 'void (__cdecl *)(class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,int)'
None of the functions with this name in scope match the target type
Partager