トップページ > 過去ログ > 記事閲覧
LoadDivGraphの値が変わってしまいます
名前:子梨 日時: 2009/07/26 16:25

はじめまして、DXライブラリを使わせていただいている者です。 Windows XPで、Visual Studio 2008を使ってゲームを作ろうとしているのですが、 LoadDivGraphを使った時、何故か時々だけ不具合が出ます。 現在、ゲームの得点のランキング画面だけを抜き出した小さいプログラムを作成していて、 プログラム内からLoadDivGraph関連の部分を抜き出すと (グローバル変数) // 順位画像のハンドル int i_ranknum[10]; (WinMain内で) LoadDivGraph("img\\ranknum.bmp", 10, 2, 5, 96, 48, i_ranknum); としてimgフォルダ内の192×240サイズのbmpファイルを読み込んで、その後 for(int j=0;j<RANKNUM;j++){ // 順位の表示 DrawGraph(POSX-192, POSY-96+j*48, i_ranknum[j], 1); } のように使っています。POSX,POSY,RANKNUMは定数です。 プログラムの内容は、乱数で得点を取得、その得点がランキングに入っていたら名前を入力して ランキングに反映し、ランキングを表示するというものなのですが、 一部の(得点がランキングに入った)場合のみ、 LoadDivGraphで読み込んだ画像のうち1ファイルだけが、 ハンドルを示す変数の値(i_ranknum[0]など)が、最初に読み込んだ時の値と変わっていて、 その画像が表示されなくなってしまいます。 変更前の値は複雑な数字でアドレスを指しているっぽい感じですが、 変わった後の数値は13,15,0などアドレスというよりは何かの変数の値のような数値になっています。 LoadDivGraph以外でi_ranknumの値をいじるような部分は無いのですが、 どうして値が変わってしまうのかが分かりません。 分かりにくい文章かと思いますが、御指南いただけないでしょうか。

Page: 1 |

Re: LoadDivGraphの値が変わってしまいます ( No.1 )
名前:Will 日時:2009/07/26 18:54

ソースがないのでなんともいえませんが、バッファオーバランでメモリは解していないかどうかチェックしてみるほうがいいと思います。 > 変わった後の数値は13,15,0などアドレスというよりは何かの変数の値のような数値になっています。 そのような値を書き込む変数を重点的に調べてみてください。
解決しました ( No.2 )
名前:子梨 日時:2009/07/26 21:20

失礼しました、指摘のあった通りバッファオーバーランがありました。 チェックはしたつもりだったのですが……ご指摘ありがとうございました。

Page: 1 |