2011-12-09 38 views
1

私はVisual C++を使用しています。私はライブラリのソースコードを持っています、それをLibと呼んでください。ライブラリは.libと.dllで構成されています。 .libをメインプロジェクトに静的にリンクし、.dllを実行可能ファイルが存在するディレクトリに配置します。メインプロジェクトにメモリを割り当て(メモリにファイルをロードする)、.dllのオブジェクトに渡してそれを構築し、プログラムが終了するとオブジェクト呼び出しがそのメモリ上で削除されます。メモリの割り当て/割り当て解除(WindowsではC++)

動作するようですが、わかりません。私が心配しているのは、メインプロジェクトにメモリを割り当て、.dllでメモリを割り当て解除することです。それらは同じヒープにありますか?

答えて

0

メモリアロケーションランタイムで共有MSVCライブラリにリンクする限り機能します。その後、EXEとDLLは同じヒープを共有します。

この依存関係を解除すると、ヒープは共有されなくなり、別のヒープ内のオブジェクトを削除するとアプリケーションが破損します。

関連する問題