probleme de compilation

probleme de compilation - C++ - Programmation

Marsh Posté le 25-05-2006 à 14:18:39    

Bonjour à tous,
je travaille sur un programme liant les librairies fmod et fftw. Je rencontre l'erreur de compilation suivante :
 

Code :
  1. 143 C:\Dev-Cpp\main.cpp argument of type `signed char (Acquisition::)(FSOUND_STREAM*, void*, int, void*)' does not match `signed char (*)(FSOUND_STREAM*, void*, int, void*)'


 
Je crois comprendre l'erreur mais je ne vois pas comment la résoudre, dans la ligne correspondante, "stream" est un pointeur déclaré en variable globale.
J'aurais besoin de plus d'informations sur cette erreur, ou mieux la manière de la corriger. Je vous remercie pour votre aide !
 
 
La ligne correspondante du programme est la suivante :
   stream = FSOUND_Stream_Create(instrument_callback, BufferSize, FSOUND_16BITS | FSOUND_SIGNED | FSOUND_STEREO |FSOUND_NONBLOCKING, Frequency, (void *)NULL);

 
Le methode qui la contient est ci dessous :

Code :
  1. // Methode d'initialisation de FMOD
  2. int Acquisition::Initialisation_Fmod()
  3. {
  4.     //////// DEBUT FMOD, ON CREE LES BUFFER EN MEMOIRE
  5.     // My stream for my synthetiseur circuit (wich need to be feeded by the micro)
  6.     stream = FSOUND_Stream_Create(instrument_callback, BufferSize, FSOUND_16BITS | FSOUND_SIGNED | FSOUND_STEREO |FSOUND_NONBLOCKING, Frequency, (void *)NULL);
  7.     if (!stream)
  8.     {
  9.         printf("Error!\n" );
  10.         printf("%s\n", FMOD_ErrorString(FSOUND_GetError()));
  11.         return(1);
  12.     }
  13.     // Play the synthetiseur channel cause we wanna hear some good sounds
  14.     if (FSOUND_Stream_Play(FSOUND_FREE, stream) == -1) {printf("Error!\n" );printf("%s\n", FMOD_ErrorString(FSOUND_GetError()));exit(1);}
  15.    
  16.     /*
  17.     Create a sample to record into
  18.     */
  19.     if (FSOUND_GetOutput() == FSOUND_OUTPUT_OSS)
  20.     {
  21.         // On vérifie le type du driver en sortie : ici LINUX
  22.         samp1 = FSOUND_Sample_Alloc(FSOUND_UNMANAGED, RECORDLEN, FSOUND_MONO | FSOUND_8BITS | FSOUND_UNSIGNED, RECORDRATE, 255, 128, 255);
  23.     }
  24.     else
  25.     {
  26.         // ici WINDOWS
  27.         samp1 = FSOUND_Sample_Alloc(FSOUND_UNMANAGED, RECORDLEN, FSOUND_STEREO | FSOUND_16BITS , RECORDRATE, 255, 128, 255);
  28.     }
  29.     //////// FIN INITIALISATION FMOD
  30. return 0;
  31. }


 
Le prototype de la classe :
 

Code :
  1. //Definition des classes
  2. class Acquisition
  3. {
  4.       public:     double acqui[OUTPUTRATE/10];
  5.    public :     Acquisition ();
  6.               ~Acquisition ();
  7.               int Initialisation_Fmod(void);
  8.               int Lancer_Enregistrement(void);
  9.               int Stopper_Enregistrement(void);
  10.                  signed char F_CALLBACKAPI instrument_callback(FSOUND_STREAM *stream, void *buff, int len, void *param);
  11.                  int copie_Sample_Micro_vers_ring_buffer_micro();
  12. };


Reply

Marsh Posté le 25-05-2006 à 14:18:39   

Reply

Marsh Posté le 25-05-2006 à 14:55:34    

une fonction et une fonction membre sont des types différents et incompatibles.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed