[C/C++] Pb Pointeurs (apparamment...)

Pb Pointeurs (apparamment...) [C/C++] - Programmation

Marsh Posté le 13-12-2001 à 22:00:18    

Bonjour tout le monde ! J'ai comme qui dirait un petit probleme. Je suis en train de faire un petit player (genre winamp) en ce moment et j'essaye d'y inclure un systeme de plugin DSP. J'utilise Fmod (www.fmod.org) pour la librairie sonore. Cette librairie a une fonction qui permet de creer ses propres effets, le prototype est le suivant :
 
FSOUND_DSP_Create(&EffetCallback, FSOUND_DSP_DEFAULTPRIORITY_USER+4, 0);
 
Ce qui m'interesse c'est effet qui est un pointeur sur fonction qui doit avoir le protoype suivant :
 
void *EffetCallback(void *originalbuffer, void *newbuffer, int length, int param)
 
Je me suis donc dit qu'en faisant un SDK qui dit au programmeur de n'exporter que cette fonction ( __declspec( dllexport ) ), récupérer le pointeur (getprocaddress) et le mettre en paramettre pour FSOUND_DSP_Create suffirait, et bien non. La méthode fonction, mais au moment ou je doit écrire sur newbuffer qui est un pointeur sur les données audio (pcm data), j'ai une erreur de violation. Et c'est de la que vient mon probleme. Et oui, car il y a FMOD derriere qui doit lui aussi écrire a ce niveau, donc ma question est : dois je utiliser les mutual exclusion ou la mémoire partager ou un autre systeme pour résoudre ce probleme ?
 
Si vous n'avez pas tout compris, j'essayerais d'etre le plus clair possible, en attendant je continue mes investigations. Dans tout les cas, merci d'avance :)

Reply

Marsh Posté le 13-12-2001 à 22:00:18   

Reply

Marsh Posté le 13-12-2001 à 22:02:17    

:pt1cable:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 14-12-2001 à 10:45:01    

a mon avis (meme si je ne connais pas fmod)
quand fmod appelle ton callback
il doit s'arranger pour qu'il puisse
ecrire dans ton buffer donc ca doit
pas etre un probleme d'acces concurrent
a la memoire. De toute facon ca n'a jamais
cree de violation d'acces un acces
concurrent a la memoire (enfin ca peut
en creer mais plutot indirectement..)
Est-ce que les autres parametres te sont
bien passes? (valeurs int et param coherentes?)
Sinon c'est peut etre du a la maniere dont
les arguments sont passes a la fonction callback.
Essaie de compiler sans passer par les export
dans un premier temps mais une fonction "dummy effet"
integre a ton programme de player
 
A+
LEGREG

Reply

Sujets relatifs:

Leave a Replay

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