数日間、ヒープの破損の問題に苦しんでいます。以前に新しく作成したオブジェクトを削除した後、ヒープを破損した可能性があることをvs 2005デバッガーから最初に警告されました。この問題について調査した結果、gflags とページ ヒープの設定にたどり着きました。特定の画像に対してこの設定を有効にした後、実際に破損を引き起こしている行を指摘したと思われます。
Gflags は、問題のオブジェクトのコンストラクターを原因として特定しました。オブジェクトは次のように派生します。
class POPUPS_EXPORT MLUNumber : public MLUBase
{
...
}
class POPUPS_EXPORT MLUBase : public BusinessLogicUnit
{
...
}
別のスレッドで MLUNumber をインスタンス化でき、ヒープの破損は発生しません。
ヒープの破損を引き起こさない、MLUBase からも継承する別のクラスをインスタンス化できます。
アクセス違反は、オブジェクトの暗黙的な初期化 (?) が原因であると思われる、コンストラクターの左中かっこで発生する破損が原因で発生します。
基本クラス コンストラクター (MLUBase) が正常に終了します。
vs 2005 のメモリ ウィンドウを掘り下げると、実際のオブジェクトに十分なスペースが割り当てられていないようです。私の推測では、基本クラスのみに十分な量が割り当てられました。
障害の原因となっている行:
BusinessLogicUnit* biz = new MLUNumber();
これを引き起こす可能性のある理由か、別のトラブルシューティング手順に従うことを望んでいます。