0

OpenGLプロジェクトでlibpngを使用して、WindowsXPでVC6.0を使用してpngファイルのテクスチャをロードしています。ビルドしても問題なく、実行中にエラーが発生します。エラーは

the instruction at 0x0040b4a3 referenced memory at 0x00000008 the memory could not be written

再起動しようとしましたが、エラーが残ります。そして、exeファイルを別のxpデスクトップに配置しましたが、エラーが残ります。

デバッグ時に、このステートメントが間違っていることがわかりました:(通常はlibpngで使用されます)

png_read_png(png_ptr, info_ptr, PNG_TRANSFORM_STRIP_16 | PNG_TRANSFORM_PACKING | PNG_TRANSFORM_EXPAND, png_voidp_NULL);

エラーメッセージは

Unhandled exception in test.exe(NTDLL.DLL): 0xc0000005: Access Violation.

私のコードはfedoraのg++で正常に動作しますが、WindowsXPのVC6.0では問題があります。


ソースコードが非常に大きく、何がうまくいかないのかわからないので、ここに貼り付けるコードがわかりません。
誰かがこれについて何か考えを持っていますか?
これについて私を助けていただければ幸いです。どうも!:)

4

1 に答える 1

1

関数に渡されたポインターを確認しましたか?8それらの1つは、有効なメモリアドレスの代わりに値を持っている可能性があります。libpngに渡されたデータに問題がない場合、エラーは別の場所にある可能性があります。

マイナーな注意:新しい(そして無料の)ExpressEditionのいずれかでVC++ 6.0を使用する理由はありますか?

于 2011-08-10T16:16:15.580 に答える