元々、SYBASEというものを使っていたプログラムをSQLServerを使用したものに変更する作業を任され、ADOというものを使ってみることにしました。
そこでstdafx.hに
#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF" )
// VC++エクステンション(レコードバインディング)を使用する
#include "icrsint.h"
を加えてプログラムを動かしてみたところ、ダイアログを閉じた時、
ハンドルされていない例外はMSVCRTD.DLL中にありますという警告文がでて
正常にダイアログを閉じれません。これの対処法を教えてください。
お願いします。
PS.VC++6.0を使用しています。Dbgheap.cというとこで何故かおちてるみたいです。
名前空間を使って解決してはどうですか?
私は以前、同じような現象がでたので、色々と調べた結果、「EOF」あたりがおかしい事に気づいたので、以下のようにしました。
#define INITGUID_ADO
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename_namespace("ADOCG") rename("EOF", "EndOfFile")
using namespace ADOCG; // 名前空間
#include "icrsint.h"
とおりすがりさんのいうように変更してみましたが相変わらず同じようにダイアログを正常に閉じられません。誰かこの状況を打開するすべを知る人がいればご回答よろしくお願いします。
編集 削除MSVCRTD.DLLがおかしい可能性があるので、最新をダウンロードしてみてはいかがでしょうか?
編集 削除MSVCRTD.DLLを探してみたんですがどれが最新版なのかわからず、とりあえずみつけたMSVCRTD.DLLをダウンロードして動かしてみましたがバグは、相変わらずでした(涙。。
編集 削除ところで、MSVCRTD.DLLってデバッグ用のDLLですよね?
リリースコンパイルしても駄目ですか?