
こんにちは。
VC++.netで暗号化ソフトを作っているんですが、デバッグモードで実行した結果と、リリースモードで実行して得られる結果が違うので困っています。
原因としては、何が考えられるでしょうか?
warningで、「warning C4267: '=' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。」と表示されましたが、(int)でキャストしてから警告は出なくはなっているんですが。
もう一つ、「LINK : warning LNK4089: 'SHELL32.dll' へのすべての参照は /OPT:REF によって廃棄されます。」と出ていますが、これは関係なさそうですので無視しています。
もしかして、同じような経験をされた方がいるんではないかと思い質問しました。
よろしくお願いします。

No.1ベストアンサー
- 回答日時:
値を初期化しないで使用した時に、この現象が発生する可能性が高いです。
例えば、関数のなかで、int a;と変数を動的変数として宣言し、このaを初期化せずに、
int b = a*a;
を実行した場合、デバッグモードの場合は、0になる可能性が高く、リリースモードの場合は、不定(前回のスタック領域で使用された値)になります。
この回答への補足
回答ありがとうございます。その可能性もありそうです。プログラム自体はWEBから探してきたものですので、これから自力でチェックしてみようと思います。
補足日時:2006/05/07 12:41No.2
- 回答日時:
assertのなかで副作用のある処理をすると問題が生じるような気がします。
例えば、assert(++foo>0)など。この回答への補足
細かくデバッグしたところ、リソースビルドの際の
CString s1;
で宣言した変数のs1.GetAt(i)をとるところでおかしくなっているようです。MSDNではGetAt(int nIndex)について、「MFC ライブラリのデバッグ環境では nIndex の範囲が検証されますが、リリース環境では検証されません。」とありました。変な話です。質問の項目を変更してまた質問したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
放射状ブラー C言語で書いたの...
-
CppUnitはCプログラムにも使え...
-
C言語で%を使わない余りの出し方
-
C++で表を作成したいのです ...
-
階乗のプログラム
-
argvのNULLチェック
-
C#で疑似カラー
-
最早開始時間と最遅完了時刻を...
-
C言語 エラーの原因がわからな...
-
信頼区間の1.96や1.65ってどこ...
-
Enterキーを押されたら次の処理...
-
プログラムでの数字につく”f”の...
-
「Aに対するBの割合」と「Aに対...
-
C++のfor文について
-
変数とパラメータとは違うもの...
-
C言語のプログラミングですが、
-
LNK2019:未解決の外部シンボル ...
-
main.c:7:43: warning: implici...
-
For文の終了値を関数にしても問...
-
2÷3などの余りについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で簡単なパックマンゲーム...
-
2の補数を計算するプログラム
-
c言語プログラミングについて f...
-
再起呼び出しの回数をカウント...
-
intとlongは同じ?
-
openCVの画像処理について
-
C言語
-
【C#】SQL文の中に変数を埋め込...
-
C言語プログラミング 漸化式に...
-
カードシャッフルのブログラム...
-
C++ Debug Errorについて教えて
-
デバッグビルドとリリースビル...
-
迷路を脱出する経路探索プログ...
-
C++デバックエラーについて詳し...
-
C++ bmp 透過処理
-
複数の共有メモリの作成
-
C言語で%を使わない余りの出し方
-
C言語
-
2次関数プログラムを描写する...
-
16bitで乱数を生成する方法
おすすめ情報