少なくとも 2 つの dll を使用するアプリがある場合、リソースを 1 つの dll に割り当て、別の dll で解放しても一般的に安全ですか?
fopen と fclose を異なる dll で呼び出すことを具体的に考えていますが、他のリソース (メモリ ポインター、ハンドルなど) に対しても安全であることも知りたいです。
すべてが同じスイッチでコンパイルされている限り、動作するはずです。
ありがとう、コーリー
少なくとも 2 つの dll を使用するアプリがある場合、リソースを 1 つの dll に割り当て、別の dll で解放しても一般的に安全ですか?
fopen と fclose を異なる dll で呼び出すことを具体的に考えていますが、他のリソース (メモリ ポインター、ハンドルなど) に対しても安全であることも知りたいです。
すべてが同じスイッチでコンパイルされている限り、動作するはずです。
ありがとう、コーリー
これは、重要なプロジェクトを除くすべてのプロジェクトで行うべき悪いこと(TM)です。これは、dllのバージョン、スレッドモデル、それぞれで使用されるメモリアロケータ、および他のホストのような非常に厳しい条件のセットの下で機能します。最後に、バグを追跡するのは非常に困難です。
C ランタイム ライブラリの DLL バージョン (/MD または /MDd) を使用している限り、安全です。
CRT を DLL (/MT または /MTd) に静的にリンクしている場合は、安全ではありません。