VS2012MFCでCDatabase::OpenExがこける – プログラミング – Home

通知
すべてクリア

[解決済] VS2012MFCでCDatabase::OpenExがこける


あき529
 あき529
(@あき529)
ゲスト
結合: 10年前
投稿: 4
Topic starter  

以前Winxp+VS2003で作成し正常に動作していたコードを、Win7+VS2012(update4適用済み)
で再コンパイルしWin7上で実行したところ、CDBExceptionがスローされずにAPPCRASHと
なってしまいます(Winxp+VS2003ではスローされていた)。設定が間違っているのでしょう
か?対応策をご存知の方がおられましたら、お手数ですがご教授いただけませんでしょう
か。

テストコード(抜粋)
#include <afxdb.h>
CDatabase db;
try
{
db.OpenEx(ABCD,CDatabase::noOdbcDialog);
// ABCDが未設定の場合、CDBExceptionがスローされるはず

// SQLを発行しデータを抽出
}
catch(CDBException* e)
{
// ODBC設定未完の場合の処理
e->Delete();
}


引用未解決
トピックタグ
AR2
 AR2
(@ar2)
Estimable Member
結合: 4年前
投稿: 110
 

 Win7+VS2012 update4で、MFCのコードを追っていくと分かりますが、例外が発生した時
に2重開放しています。
 ライブラリ内部の話で私は対応策が思いつかなかったので、低レベルAPIを用いてMFCを
使わないようにしました。


返信引用
あき529
 あき529
(@あき529)
ゲスト
結合: 10年前
投稿: 4
Topic starter  

ARさん レスありがとうございます、遅くなり申し訳ありません。
おっしゃるとおり、2重開放時にこけておりました。LocalFreeの解説にアクセス違反の
例外(EXCEPTION_ACCESS_VIOLATION)が発生することがあるとなっていますので、当然の
結果のようです。
MFCのバグのようなので、マイクロソフトさんに何とかしてもらいたいです。
今回、私もAPIにて対応しましたが、APIでのODBCプログラミングは初めてでしたので、か
なり手惑いました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました