0

我在我的 C++ 项目中使用 FMOD。构建时没有错误或警告,但是在调试时;我从 FMOD_System_CreateSound 函数中得到以下运行时错误:

Unhandled exception at 0x008e3f56 in Audio_Demo.exe: 0xC0000005: Access violation reading location 0xfdfdfdfd.

这是函数调用:

FMOD_System_CreateSound(system, filename.c_str(), FMOD_DEFAULT, NULL, &sample->sample);

其中,system 是指向 FMOD_SYSTEM 对象的指针,sample 是辅助类,而 sample->sample 是指向 FMOD_SOUND 对象的指针。

如果有任何帮助;在项目中,我将每个参数放在单独的一行上,错误似乎发生在最后一个参数(sample->sample)上。

提前感谢您的帮助。

\,,/[>.<]\,,/

4

1 回答 1

0

花了一整天的时间来解决这个问题,只是决定在这里发帖寻求帮助。幸运的是,多一点挖掘,我意识到我的错误。

我没有正确初始化包含 FMOD_SOUND 对象指针的辅助类,所以它为空,因此引发了错误。只需在我的初始化函数中切换几行代码就可以对此进行排序(即我的帮助类在调用 FMOD_System_CreateSound 之前被初始化)

想我会发布我找到的解决方案,因为当海报提出问题时我无法忍受;弄清楚并说:“啊,没关系。我解决了!” 没有与世界其他地方分享答案。

希望这会帮助遇到类似问题的人。如果没有,请发表评论,我会尝试进一步澄清。

\,,/[>.<]\,,/

于 2012-12-16T20:22:56.963 回答