Eine Callback Funktion???
-
Hallo alle zusammen,
ich habe eine C-Funktion, die ich in einen C++-MFC-Anwendung implementieren muß. Das Problem diese in C geschriebenen Funktion erhält als Parameter den Namen einer anderen Funktion. Ich habe hier unten den C-Code mit der Header-Datei beschrieben falls jemand mir behilflich sein könnte.Die Frage ist wie ich die zwei Funktionen in der Klasse implementieren kann???int main(void) { ... /* Diese Fkt. "RegisterEveryNSamplesEvent" hat als Parameter eine andere Fkt. "EveryNCallback" */ RegisterEveryNSamplesEvent(a,b,c,d,EveryNCallback,callbackData); ... ... return 0; } /* Hier wird die "EveryNCallback" definiert */ int CVICALLBACK EveryNCallback(int x,float y,uInt z, void *callbackData) { ... ... ... return 0; }In der header Datei ist CVICALLBACK so definiert:
... #define CVICALLBACK CVICDECL ... #define CVICALLBACK CVICDECL ... ... typedef int (CVICALLBACK *EveryNSamplesEventCallbackPtr)(TaskHandle taskHandle, int everyNsamplesEventType, uInt nSamples, void *callbackData); typedef int (CVICALLBACK *DoneEventCallbackPtr)(TaskHandle taskHandle, int status, void *callbackData); typedef int (CVICALLBACK *SignalEventCallbackPtr)(TaskHandle taskHandle, int signalID, void *callbackData);
-
hmm wo ist dein Problem? Am einfachsten ist es wenn du dir mit typedef das passende definierst ... und du kanst eine Funktion auch als Parameter übergeben ... ist nicht so ads Problem ...
INT_PTR CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM) { return (INT_PTR)FALSE; }So .. sagen wir mal das ist unsere Callback ... muss auch net unbedingt soo aussehen ^^ Nur für die Beispielfunktion halt schon ...
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MY), NULL, DlgProc);Auch hier ist wieder wichtig das der Compiler wenigstens die Funktionsdecleration vor der übergabe als Paraqmeter haben muss ...