Kompilierungsfehler !!!
-
Hallo zusammen,
ich habe einen fehler, den ich nicht beseitigen kann
Das ist eine dialogbasierende MFC-Applikation:In der Header-Datei von Myclass ist meine Callback-Funktion so deklariert:
public: //// Myclass.h /// int32 __cdecl Callback(TaskHandle taskHandle,int everyNsample,int nSamples, void *callbackData);Implementiert ist die Callback-Funktion wie folgt:
/////////////////////// Die Callback-Funktion /////////////////////////// int __cdecl Myclass::Callback(TaskHandle taskHandle, int everyNsample, int nSamples, void *callbackData) { //Diese Funktion füht nur Messungen durch Read(taskHandle,data,100,&read); return 0; }Aufgerufen wird die Callback-Funktion als Parameter an eine Funktion übergeben. Die Implementirung sieht so aus:
/////////////////////// Mehrfachmessung /////////////////////////// int Myclass::XMessen() { RegisterEveryNSamples(taskHandle,Val_Acquired_Into_Buffer,1000,0,Callback,NULL)) != 0) return 0; }Der Fehler lautet:
error C2664: 'RegisterEveryNSamples' : Konvertierung des Parameters 5 von 'long (unsigned long,long,unsigned long,void *)' in 'long (__cdecl *)(unsigned long,long,unsigned long,void *)' nicht moeglich.
Keine Funktion mit diesem Namen im Gueltigkeitsbereich stimmt mit dem Zieltyp uebereinIch brauche euere Hilfe

Vielen Dank

Andre
-
Wie ist denn die Funktion RegisterEveryNSamples() deklariert? Der Fehler sieht danach aus, daß die Parametertypen nicht zu dem passen, was die Funktion erwartet.
-
So ist die RegisterEveryNSamples Funktion in Myclass.h deklariert:
int RegisterEveryNSamples (TaskHandle taskHandle, int everyNsample,int nSamples, int options, EveryNSamplesEventCallbackPtr callbackFunction,void *callbackData);Andre
-
Und jetzt bitte noch die Definition der beteiligten Typen (besonders der Callback-Typ). Und am besten packst du dein ganzes Problem in ein kurzes kompilierbares Beispielprogramm.
-
CStoll schrieb:
Und am besten packst du dein ganzes Problem in ein kurzes kompilierbares Beispielprogramm.
Da liegt doch das Problem.

-
estartu schrieb:
CStoll schrieb:
Und am besten packst du dein ganzes Problem in ein kurzes kompilierbares Beispielprogramm.
Da liegt doch das Problem.

OK, dann zumindest ein Programm, an dem jemand anderes den Fehler nachvollziehen kann (zufrieden? :D) - mit einigen unzusammenhängenden Schnipselchen könnte nur ein Hellseher etwas anfangen.
-
"Callback" muss statisch sein
-
Hallo,
Ich habe immer noch keine Lösung gefunden.

-
dEUs schrieb:
"Callback" muss statisch sein