0

ゲームを作ったときはすべてうまくいきましたが、突然、土の積荷の写真に奇妙な例外がありました。それはゲームの開始時に起こらなかった、それは突然起こった、それは非常に奇妙だった。

ここに写真があります:http: //oi39.tinypic.com/vgj9y.jpg

ここにコード:

bool window::loadTex(std::string fName, int fNum)
{
        textur[fNum] = SOIL_load_OGL_texture
            (
            (char*)fName.c_str(),
            SOIL_LOAD_AUTO,
            SOIL_CREATE_NEW_ID,
            SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y 
            );
        if(textur[fNum] == 0)
            return false;
        return true;
}

および関数呼び出し:

if(!loadTex(std::string("data/back.png"), 0))
        printf("Can't load image");

それはとても奇妙です...例外が起こったとき、私は土壌に関連することは何もしませんでした。

Dissamblyにそれについてのより多くの情報があります、それは助けになりますか?

First-chance exception at 0x784FFDEE (msvcr100.dll) in ConsoleApplication6.exe: 0xC0000005: Access violation reading location 0x00000000.

修理済み!どうもありがとう!

4

1 に答える 1

0

それについて奇妙なことは何もありません。実行時エラーが発生しました。おそらくコードのどこかでメモリをオーバーランさせており、これが問題の現れ方です。コード内の問題を見つける必要があります。

問題を見つける 1 つの方法は、デバッガーを使用して、クラッシュしたオブジェクトの何が問題なのかを調べることです。そこにあるポインターの 1 つに無効な値がある可能性があります。ガベージを含むこのポインターのアドレスが実行間で一貫している場合、そのアドレスにデータ ブレーク ポイントを配置し、データ ブレーク ポイントにヒットするたびに、誰がそれを変更しているか、それがエラーであるか正常な状態であるかを確認できます。フロー。

于 2012-02-22T16:02:16.547 に答える