デバッグ版でDLLでFreeLibrary後にエラー

現在の悩み。

DLLで
LoadLibrary→FreeLibraryで
メモリアクセス違反になる。




Debug Assertion Failed!
Program: ****
File: dbgdel.cpp
Line: 52

Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)

なにも呼び出したりしていない。
とりあえず、Release版では問題なさそう。

新規で作ると、なにも起こらない。
>当たり前・・・

気になる点は、DLLのサイズがDebug版で2MBを超えている。
サイズによる制限がなにかあるかと思って調べたがまだ原因がわからない。

あと、2週間ぐらいは悩んでみるけど、あまり時間がないぞ!

  • Debug版で、Release版を呼び出しているのが問題とよくあるが、Debug版だよね…


追記:2009/02/19 10:29:31
原因解明。
外部ライブラリがリリース版で、どうも内部でなにかやっているようだ。
外部ライブラリを外すと問題なくなる。

だから、リリース版は問題がない。。


追記:2009/02/19 11:12:46
リリース版のスタティックライブラリを利用した、リリース版DLLを作成
デバッグ版でもリリース版DLLを利用するように変更する。
これでも問題解決。

ほっと一安心。