Bonjour à tous

Actuellement, je travaille sur la conception d'un petit jeu sous windows. En ce qui concerne le son, je souhaiterai utiliser la libvorbis et libogg. (la libogg est nécessaire à la compilation de la libvorbis)
Je compile sans soucis les deux libs et j'essai un petit programme de test :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "vorbis/codec.h"
#include "vorbis/vorbisfile.h"
#include <iostream>
#include <io.h>
#include <fcntl.h>
 
char pcmout[4096];
 
int main(int argc, char **argv)
{
   OggVorbis_File vf;
   FILE * fic;
   fic=fopen("./menu.ogg","rb");
   if(fic)
   {
        std::cerr<< "prout" << std::endl;
   }
 
//ici j'ai testé les deux fonction suivantes et j'obtiens la même erreur
//if(ov_open_callbacks(fic, &vf, NULL, 0, OV_CALLBACKS_DEFAULT) < 0)
   if(ov_fopen("./menu.ogg",&vf)<0)
   {
      fprintf(stderr,"Input does not appear to be an Ogg bitstream.\n");
      exit(1);
   }
   else
   {
       std::cerr<< "youpi on a ouvert" << std::endl;
   }
 
   ov_clear(&vf);
 
   fprintf(stderr,"Done.\n");
   return(0);
}
A la compilation aucun problème, mais lorsque je lance lance le programme j'ai un segmentation fault au moment de l'appel de ov_fopen ou ov_open_callbacks (dans les deux cas).

j'ai lancé gdb pour essayer d'avoir plus d'information :

(gdb) bt
#0 0x77509e03 in ntdll!RtlEncodePointer () from C:\Windows\SysWOW64\ntdll.dll
#1 0x77509d12 in ntdll!RtlEncodePointer () from C:\Windows\SysWOW64\ntdll.dll
#2 0x60866fa3 in msys-1.0!cfsetispeed ()
from C:\MinGW\msys\1.0\bin\msys-1.0.dll
#3 0x00000002 in ?? ()
#4 0x0028fad8 in ?? ()
#5 0xfffffffc in ?? ()
(gdb)

merci gdb ^^

J'ai essayé de recompiler les libs sans observer le moindre changement

est-ce que quelqu'un aurait la moindre idée de ce que j'ai raté?

merci de votre attention