リリース モードで Qt 4.8 を使用して Windows 7 でプロジェクトをコンパイルしているときに問題が発生しました。デバッグではすべて正常に動作しますが、リリースでは未処理の例外が発生します: 0xC0000005: アクセス違反。
これが発生する行、つまりピクセル バッファーを生成する行に絞り込みました。私の最初の推測では、DLL の読み込みが間違っていると思いますが、実行可能ファイルを Dependency Walker でチェックしたところ、読み込まれたすべての DLL は正しいものでした。
これが私のコードの一部です:
class CameraView : public QGLWidget, protected QGLFunctions;
void CameraView::initializeGL()
{
initializeGLFunctions(this->context());
glGenBuffers(1, &pbo_); //<<<<< This is where I get the unhandled exception on Release mode
glBindBuffer(QGLBuffer::PixelUnpackBuffer, pbo_);
glBufferData(QGLBuffer::PixelUnpackBuffer, 3 * sizeof(BYTE) * image_width_ * image_height_, NULL, GL_STREAM_DRAW);
...
}
繰り返しますが、これはデバッグでうまく機能します。これがリリース時にのみ発生するのはなぜですか?