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 ueberein

    Ich 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


Anmelden zum Antworten