前提・実現したいこと
DLLを使用するプログラムをデバッグモードで実行する際エラーが発生しないようにしたい。
DLLはVisualStudio2015でMFC DLLとして作成したもので、Releaseしたものを使用しています。
よろしくお願いいたします。
発生している問題・エラーメッセージ
ハンドルされない例外が 0x6E1CD930 (vcruntime140.dll) で発生しました(DataRay.exe 内): 0xC0000005: 場所 0x001F1000 の読み取り中にアクセス違反が発生しました。 この例外のハンドラーがある場合は、プログラムを安全に続行できます。
というエラーメッセージが発生し、デバッガは自作DLLの関数を呼び出す行を指して止まります。
試したこと
自作DLLのプロジェクトを、使用する側のプロジェクトのソリューションに追加し参照に追加することでエラーが発生しなくなります。
また、一回エラーが発生しなくなればそれ以降ソリューションから自作DLLのプロジェクトをアンロードしようと参照を削除しようとエラーは発生しません。
複数のソリューションで同じことをするので「うっかり自作DLLのコードを書き換えてしまった!」ということを避けたいのと単純に面倒で不気味なのでこの方法は避けたいと考えています。
補足情報(FW/ツールのバージョンなど)
- Windows7/64bit SP
- VisualStudio2015 SP1
- C++/MFC
2018-08-27追記
DLLを同環境においてDebugモードでビルドした.dll, .lib, .hファイルをDLLを使用するプログラムに配置すると少し状況が変わりました。
リンカエラーが発生しソリューションファイルと同じディレクトリにあるDebugディレクトリ下に.libファイルを要求されます。
配置後は結局同じエラーが発生します。
またリンカにはlibというディレクトリ下の.libファイルを指定しているはずなのですがDebugディレクトリ直下に配置して上記のリンカエラーが解消されるのも不可解に思えます・・。
2018-08-28追記
今朝デバッグしているとDLLのバージョンが違うとVisualStudioに怒られ、
何も変えてないのになあと思いながらDLLをビルドしなおして配置しなおすなどなどしたら発生しなくなりました・・・。
DLLのプログラムも手直しも何もしてないのに変な話です。妖精さんが直しておいてくれたのかもしれません。(冗談抜きで最近変更など全く加えていないので何が変わったのか謎です・・・)
ともあれ教えていただいた方法で動くことが確認できたのでベストアンサーに選択しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/27 04:29
2018/08/28 02:45