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オブジェクトポインタを含むヘルパークラスを適切に初期化していないため、nullであり、エラーがスローされました。イニシャライザー関数で数行のコードを切り替えるだけで、これが並べ替えられました(つまり、FMOD_System_CreateSoundが呼び出される前にヘルパークラスが初期化されました)

ポスターが質問をすると我慢できないので、見つけた解決策を投稿すると思いました。それを理解し、「ああ、大丈夫です。私はそれを解決しました!」と言います。答えを他の世界と共有することなく。

うまくいけば、これは誰かが同様の問題を抱えているのを助けるでしょう。そうでない場合は、コメントしてください。さらに明確にするよう努めます。

\ ,,/[>。<]\,, /

于 2012-12-16T20:22:56.963 に答える