おはようございます。
Visual C++2015のデバッグ中に画像の例外発生!!!!なぜじゃ?
発生する部分 IStreamクラスでなにかが起こっている。ちなみに
コケル部分は以下の通り…
IStream *stream; stream->Write(tv, (ULONG)p3.QuadPart, &hh); DX::ThrowIfFailed(// ここで例外 m_wicFactory->CreateDecoderFromStream( stream, nullptr, WICDecodeMetadataCacheOnDemand, &decoder));
ところが全く同じロジックを使っているルーチンでは例外発生が起きずに無事に動いている…なぜじゃ?ということで試行錯誤して、ストリームの考え方から言って、ストリームのシークポインタがおかしいのか?と思って、例外のシークポインタを強制的にリセットしてやった。
IStream *stream; stream->Write(tv, (ULONG)p3.QuadPart, &hh); stream->Seek(p, STREAM_SEEK_SET, &p2);//<-追加 DX::ThrowIfFailed( m_wicFactory->CreateDecoderFromStream( stream, nullptr, WICDecodeMetadataCacheOnDemand, &decoder));
ということで、無事に動いた(^_^)v
Web上のサンプルプログラムはエラーの出るやつなのですが、なぜ?こういう現象が起こるんだろうか?謎?????
ということで、念のために、エラーの発生しない全く同じロジックにも安全のため同じシークをリセットするルーチンを追加しよう.
これ半日悩んだ….orz..、