アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問です。

Microsoft Visual Studio 2008 Professional Edition - JPN
Microsoft DirectX SDK (August 2007)

上記の環境で開発を行っているのですが、
Debug実行、Release実行、Exe実行で動作ができなくなることが
あるのですが、原因はなんなんでしょうか?
ご教授御願い致します。

特にコンパイル環境の設定を変更したわけではなく、
リリース環境も"最大限に最適化"のみとなっています。
フォルダパス等も間違っておらず、DirectXの描画が不正となります。

基本的にDebug実行では、問題なく、リリース環境とExe実行に問題が発生します。
原因は、環境構築の違いからくるものだと思うのですが、
解決するには、どうすればよいのでしょうか?
また、他の問題があるのでしょうか?

宜しく御願い致します。

A 回答 (4件)

リリース環境のみに起こるバグというのはよくあることです。



そういう場合、releaseビルドでもファイルにログを出力したり、WindowsならOutputDebugStringで
追跡できるようにしておくとよいでしょう。
(define1つでログ出力のオン/オフが出来るようにしておくと便利です。)

>DirectXの描画が不正となります
上記の方法でログをとりHRESULTの値等がどうなっているか調べてください。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
上記のOutputDebugStringで処理を見直してみます。

お礼日時:2009/02/16 08:34

100%バグでしょうね。


想定外のメモリ領域の内容を破壊している可能性が高いのでは?
ポインタや配列の処理を見直してみたほうが良いです。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
バグですか・・・
ポインタや配列を多様してますので、再度見直しています。

お礼日時:2009/02/16 08:36

 こんばんは。



 テクスチャーが読み込めないのでしょうか。パスの方は本当に完全でしょうか。
 ロードするファイルへのパスの指定にGetCurrentDirectory()を使用していますでしょうか。
 
 例えば、

 //此れを使って初期化する
 static const CString InitCurrentPath()
 {
  TCHAR buf[MAX_PATH];
  ::GetCurrentDirectory(MAX_PATH, buf);
  return buf;
 }

 //何処かのヘッダで宣言する
 extern const CString CStrMaxPath;

 //何処かで一回だけ初期化する
 const CString CStrMaxPath = ::InitCurrentPath();

 テクスチャーをロードする時、

 //sFileNameをロード用関数に渡す
 const CString sFileName = CStrMaxPath + "\\" + "myTexture.dds";

 と言った具合になっていますでしょうか。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
確認いたしましたが、やはりパスは問題ないようです。
どうやら処理に問題がありそうなので、見直すことにします。

お礼日時:2009/02/16 08:37

9割8分くらいは自分の書いたコードが間違っているのが原因


デバッガ使って追っていきましょう

参考URL:http://msdn.microsoft.com/ja-jp/library/dykf6bx9 …
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
デバッガを使って処理を見直してみます。

お礼日時:2009/02/16 08:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!