• ベストアンサー

デバックモードが終了しません

VC6(SP5)からADO(Oralce)へアクセスしているのですが、 処理は正常に行えるのですが、終了処理(ウインドウを閉じる又はAfxGetMainWnd()->PostMessage( WM_CLOSE );を行う)をすると、VSがデバックモードのままで終了しません。 これは、ソースが悪いのでしょうか? それとも、何か設定が間違っているのでしょうか? ちなみに、exeを実行し終了すると、問題なく終了します。エラー等は発生しません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.3

手元にリファレンスも何にも無いので憶測ですが… CreateInstance、Open、Releaseが返り値を返すのであれば、その結果を確認する処理を追記してみては?

w0a15455
質問者

お礼

解決しました。 どうも、OracleODBCのバグのようで、パッチを当てたら あっさり直りました。不覚でした;; ご迷惑をおかけしました。 ありがとうございました。

その他の回答 (2)

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

> VSがデバックモードのままで終了しません。 Ctrl+Breakや条件付きのBreakなんかで中断して、コールスタックを確認とか。

w0a15455
質問者

お礼

ありがとうございます。 いろいろやってみたのですが、下記のコードの m_pConnect->Open() を通ると、終了しないようです。 もちろん、クローズはしています。 ここを通らないと、正常に終了します。 (DBは、止まっていてなるので関係ないようです) なにか、Openの仕方がおかしいのでしょうか? // オープン ::CoInitialize(NULL); m_pConnect.CreateInstance(__uuidof(Connection)); m_pCommand.CreateInstance(__uuidof(Command)); m_pRecordset.CreateInstance(__uuidof(Recordset)); _bstr_t strOpenString; _bstr_t strUserName = ""; _bstr_t strPasswd = ""; strOpenString.operator = ("DSN=ora;UID=ora;PWD=ora;"); m_pConnect->Open( strOpenString , strUserName, strPasswd, adConnectUnspecified ); // クローズ m_pConnect->Close(); if( m_pRecordset != 0 ) { m_pRecordset.Release(); m_pRecordset = 0; } if( m_pCommand != 0 ) { m_pCommand.Release(); m_pCommand = 0; } if( m_pConnect != 0 ) { m_pConnect.Release(); m_pConnect = 0; } ::CoUninitialize();

  • aris-wiz
  • ベストアンサー率38% (96/252)
回答No.1

ブレークポイント置いてたりしませんか?

w0a15455
質問者

お礼

ブレークポイントをすべて削除してやってみましたが、 ダメでした。

関連するQ&A