Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么我的代码没有完成Sound::release()调用?_C++_Mp3_Fmod - Fatal编程技术网

C++ 为什么我的代码没有完成Sound::release()调用?

C++ 为什么我的代码没有完成Sound::release()调用?,c++,mp3,fmod,C++,Mp3,Fmod,我正在创建一个简单的MP3播放器,并使用FMOD核心API来管理音频。我已经写了一个简单的程序来测试播放功能。 我有两个函数freeSound和freeSystem分别释放声音和系统句柄。这两个函数都是通过析构函数中的函数cleanUp调用的 我已经使用gdb发现,由于某种原因,当调用析构函数时,我的程序在freeSound中的Sound::release调用中卡住了 只有在freeSound之前调用freeSystem时,才会出现此问题。简单地调用后者首先解决了这个问题 我已经分享了尽可能少的

我正在创建一个简单的MP3播放器,并使用FMOD核心API来管理音频。我已经写了一个简单的程序来测试播放功能。 我有两个函数freeSound和freeSystem分别释放声音和系统句柄。这两个函数都是通过析构函数中的函数cleanUp调用的

我已经使用gdb发现,由于某种原因,当调用析构函数时,我的程序在freeSound中的Sound::release调用中卡住了

只有在freeSound之前调用freeSystem时,才会出现此问题。简单地调用后者首先解决了这个问题

我已经分享了尽可能少的代码来显示这个问题。如果需要更多/更少,我将添加/删除

主要功能:

int main { 音乐播放器p{music.mp3}; 标准::coutFMOD参考应解释以下行为:

关闭将使使用此系统创建的对象无效。请确保在调用此之前释放了所有声音、通道组、几何体和DSP对象


系统::在组件出现问题之前释放系统时,so会调用close。正如您发现自己只需在释放系统之前释放所有内容即可。

谢谢!事实证明,我可以通过播放声音、调用cin.get并以错误的顺序释放资源,在测试程序中重现问题。