質問: 私のDLLのデバッグ方法が間違っていたようです。 ただ > > デバッガでアタッチしてコールスタックみればいいのではないでしょうか > > > との指摘を受け調べたものの実施するにあたってどういう手順を踏めば良いのかよくわからないため進展せずです。 参考... Heap corruption when returning from function inside a dll|StackOverflow(リーディングスキル不足により内容を理解できず・・・) ### 本文 宜しくお願いいたします。 ### 前提・実現したいこと VisualStudioで開発中のC++/MFCアプリがDebug実行中に意味深なダイアログを表示します ダイアログの意味や表示される原因をご存知の方、どうか教えてください。 業務で作成中の`ダイアログベースプログラム`において `メインダイアログクラスA`の`OnInitDialog`内で `とあるクラスBのコンストラクタ`を呼び その中で自作DLLでIniファイルからの呼び出しを行う処理を行おうとしたのですが heap corruptionが発生していることが判明し 原因の切り分けを進めるうち `DLLから静的リンクで呼び出したクラスZのコンストラクタ`が原因っぽい?という結論に至りました そこでその部分だけ`クラスBのコンストラクタ`から抜き出し 別途関数を作成してその中にペーストし `クラスBコンストラクタ`を実行したあとでその関数を呼び出すようにしました。 そのとき、heap corruptionは発生しないものの`エラーはありませんでした`というダイアログが表示されたのです。 はじめてみるだけならともかく意味不明で DLLやソリューションにそのようなダイアログを表示する記述がないか探しましたが、存在しませんでした。 前置きが長くなりましたが、この`エラーはありませんでした`ダイアログが誰によって表示され どのような意図のダイアログであるかをご存知の方はどうか教えてください。 heap corruptionについては実際のところ別途検証用プログラムで同様の現象が発生しなかったため 原因の切り分けも完全に無駄だったと判明し全く解決していないのですが ともかく一番最後に出てきたの異常からひとつひとつ解決したいと考えています。 宜しくお願いいたします。 ### 発生している問題・エラーメッセージ ``` エラーはありませんでした ``` ### 該当のソースコード 非常に長い上ネット上に公開するのは問題になる可能性があるので公開はしません。 `エラーはありませんでした`を見たことがある、このように対処した という情報をいただければ片っ端から試してみたいと考えています。 ### 補足情報(FW/ツールのバージョンなど) * Windows7/64bit SP * VisualStudio2015 SP1 * C++/MFC
回答: デバッガでアタッチしてコールスタックみればいいのではないでしょうか **追記** heap corruptionについて、 DLL・EXEのランタイムライブラリをマルチスレッドDLL版にしてみると直りそうな気がします