Moin ,
Mein Problem hat folgende Vorraussetzung:
MFC Visual C++
Ich habe eine geraet.dll, dort kann ich eine MessageHandler Funktion registrieren mit
PointerToMessageHandler = registerHandler(PointerToMessageHandler);
dazu habe Ich eine Funktion einmal Global
void MyGlobalMessageFunktion ( CGearteMessage Message,CString szMessage);
und eine Funktion In der Classe ,die wo ich den MessageHandler 'Registriere.
void Classe::MyMessageFunktion ( CGearteMessage Message,CString szMessage);
Vorgabe ist
typedef void(\*PointerToMessageHandler)(CGearteMessage Message,CString szMessage)
Jetzt das Problem
wenn ich beim Registrienen die Memberfunktion Classe::MyMessageFunktion zu registrieren.
also
PointerToMessageHandler = registerHandler(&MyMessageFunktion);
gibt es einen Error C2276 ‚&‘ ungültige Operation auf Ausdruck einer gebundenen MemberFunktion
kein Problem ist wenn ich die Globale Funktion nehme.
PointerToMessageHandler = registerHandler(&MyGlobalMessageFunktion);
-
Frage , kann ich irgentwie ein Pointer auf die Memberfuntkion bekommen.
-
Wenn denn nur die Globale Funktion geht, wie komm ich wieder an meine Classe innerhalb meiner Globalen Funktion.
versucht hab ich folgendes :CproCheckApp* pApp = (CproCheckApp*) AfxGetApp();
CFrameWnd* pWnd= (CFrameWnd*)pApp->m_pMainWnd;
CproCheckDoc* pDoc = (CproCheckDoc*) pWnd->GetActiveDocument();
CDeviceCtrl* pdCtrl = &pDoc->m_MessCtrl.m_CDeviceCtrl;
gibt ein Assertion fault bei pDoc
wenn 1. nicht Lösbar dann 2.
hilfe büdde *ganz lieb schaut*