あるモジュールで何かを新規作成し、別のモジュールで削除すると、VC++ で問題が発生することがよくあります。異なるランタイムの問題。静的にリンクされたランタイムおよび/または動的にリンクされたバージョン管理の不一致を持つモジュールを混在させると、正しく思い出せば問題が発生する可能性があります。
しかし、モジュール間で VC++ 2008 の std::tr1::shared_ptr を使用しても安全ですか?
shared_ptr が何であるかさえ知っているランタイムのバージョンは 1 つしかないため、静的リンクが唯一の危険です (今のところ...)。ブーストのバージョンの shared_ptr はこのように安全に使用できると読んだことがあると思いましたが、レドモンドのバージョンを使用しています...
割り当てモジュールでオブジェクトを解放する特別な呼び出しを回避しようとしています。(または、クラス自体の「これを削除」のようなもの)。これが少しハッキリしていると思われる場合は、これを単体テストに使用しています。既存の C++ コードの単体テストを試みたことがある場合は、どのように創造性を発揮する必要があるかを理解できます。私のメモリはEXEによって割り当てられますが、最終的にはDLLで解放されます(参照カウントが私が思うように機能する場合)。