COM DLL (VC6.0 ATL ウィザード ビルド) があり、appdomain の ID を使用して、1 つのプロセスが複数の appdomain を作成し、すべてのプロセスがこの COM DLL をロードし、すべての COM DLL がメモリ空間を分離できるようにします。</p>
例えば
AppDomain Domain1 = AppDomain.CreateDomain("D1"); AppDomain Domain2 = AppDomain.CreateDomain("D2");
object obj1 = Domain1.CreateInstanceFromAndUnwrap("UnManagedCOMDLL.dll", "UnManagedCOMDLL.ShowTag");
オブジェクト obj2 = Domain2.CreateInstanceFromAndUnwrap("UnManagedCOMDLL.dll", "UnManagedCOMDLL.ShowTag")
この dll には、グローバル変数があり、ロードするたびに it++ になります。com は異なる appdomain にロードされていますが、グローバル変数は互いに共有されています。
なぜそのような結果が起こったのですか?appdomain はメモリ分離を維持する必要がありますが、失敗しました。
ただし、マネージ dll に対しては、appdomain は機能します。
助けて!!!!!