通知
すべてクリア
Topic starter
2010年6月3日 12:47 PM
DirectXのDXUTを使ったプログラムをしています。
環境はVC++2005です。
実行環境が異なると、
描画するコンポーネントの状態が変わってしまい
困ってます。
VC++から実行したDebug版→正常
VC++から実行したRelease版→正常
Debug版のEXEファイル起動→正常
Release版のEXEファイル起動→異常
異常内容は描画すべきTEXT文字が描画されていなかったり、
FillRectした背景が描画されていなかったりします。
何か実行環境が異なる事で、
Render処理に影響うけることがあるのでしょうか?
2010年6月3日 4:46 PM
影響が云々と言うよりも潜在バグが表に出ただけなんじゃないか
と言う気がします。
動いているから正常と言うのは実は危険な考え方です。
動かし方を変えたら動かないとか動作が変わるというような場合、
潜在的なバグが動作環境の変化で顕在化したと考えた方がよいと
思います。
まずは描画周りでおかしなコードがないかの確認を行った方が
良いと思います。メモリの不正アクセス系のバグだと原因箇所と
顕在箇所がかなり離れているケースもありえます。
その場合、バグの原因を究明するのが難しくなります。
Topic starter
2010年6月3日 5:26 PM
潜在バグ、、、初めて聞きました。
非常に勉強になります。
仰る通り作成したコードをいろいろ探した結果、
メンバ変数の初期値の設定が行われていないため、
リリース版の場合のみ影響が出てしまってました。
コーディング方法ではなく、
リファクタリングバグを少なくするノウハウを、
勉強しなくてはいけないなと考えさせられました。
もし、勉強になるサイトなどあれば教えてくれませんか?
有難うござました。