本当にある!不思議なこと

まず、この画像を見て欲しい。
デバッグ中の一部なのですが、今まさにif文が実行されようとしています。
a0002261_19245229.jpg

wroteは、1で、式(wrote != 1)は false なので、throw を通り越すはずなのですが、
なぜか、この文が true と判断されてしまいます。
ウオッチでも false なのに。。。 (;_;)
ステップ実行をしても、何度確認しても、falseのはずの条件で throw にたどり着いてしまいます。

何度やってもダメだったので、今度は、式を == で繋いでみました。
すると、やっぱりthrow に行きます。
良く条件を間違えることはあるので、いろいろな可能性を試しましたが、何をやってみても、
この if 文では、true と判断されるようです。

リビルドは何度掛けたか分かりません。
不思議なこともあるものです。

ってこのままじゃバグとれないじゃん!
どうすりゃいいの?

<追記>
いろいろやったら、なんとか直った。
それも、これで良いのか?といいたくなるような変更で。

int wrote = (int)fwrite(pbData, pixSize, 1, outFile);
assert(wrote == 1);
if(wrote != 1)
{
    throw "Failed to write image data";
}

↑これでもダメでした。

int wrote = (int)fwrite(pbData, pixSize, 1, outFile);
assert(wrote == 1);
if(wrote != 1)
{
    throw "Failed to write image data";
}
else
{
    ;
}

↑これでもダメでした。

int wrote = (int)fwrite(pbData, pixSize, 1, outFile);
assert(wrote == 1);
if(wrote != 1)
{
    throw "Failed to write image data";
}
else
{
    TRACE("OK\n");
}

↑これでOKになりました!
なんで???

おれっちスタックとか破壊してるのか?
[PR]
by isoq | 2005-02-21 19:29 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇
<< 4つ目の応募 Visual Source Safe >>