はじめまして。
今、for文などのループにおいて、おかしな現象が発生しています。
何が悪いのか見当がつかないため、お力を貸してください。
int i;
for(i = 0; i < 1000; i++) {
TRACE([%d\], i);
}
上記コードを実行すると、
アウトプットウィンドウに
[0]
[1]
[2]
・
・
・
と表示されますが、ある数値を超えた時点で間が飛んでしまいます。
たとえば、以下のように396から2840の数字が表示されません。
・
・
[394]
[395]
[2841]
[2842]
・
・
while文でもだめですし、、、
なぜか、forループの中にSleep(1);を入れると飛びがなくなります。
OSは2000,XPpro両方やっていますが同様です。
VC6(SP6)で実行しています。
なんか、狐につままれたようです。
TRACEの表示が追いついていないだけです。
http://support.microsoft.com/kb/218007/ja
回避方法についても少し書いてあるみたいだけど判らなかった。
私はテキストファイルにログを吐き出すマクロを作っています。
仕様なんですね。。。
私の環境では395前後で一発目が飛びが発生するので、
300回おきにウェイトを入れると発生しなくないました。
ファイル出力もやってみましたが、飛びが発生せず、
正しく出力されていました。
今日の夜はゆっくり寝れそうです。
通りすがりさん、たいちうさん
ありがとうございました。
要するに IDE (Visual Studio 6.0) の Debugger の表示が遅いだけなわけで
それ以外の OutputDebugString を受け取るツールを使えばよいわけだ
sysinternals の DebugView でも使えばいい
http://technet.microsoft.com/ja-jp/sysinternals/d46b4037-88ae-41d7-a41c-
9660d7d96cf2(en-us).aspx
# Silverlight をダウンロード汁ってうるさいなーなんとかならんのかな
…既に回答があるのに駄目押しで書き込む必要は無いのでは?
別の解法提示をして下さるなんて、有り難いじゃないですか~。
但し 知識をひけらかす為の、こじつけ情報が多いですが...。
あ、このスレッドではないですよん。他のスレッドで、の意。