管理されていないdllで記述した管理されていないC++クラスがあります。アンマネージdllを参照するマネージdllがあります。管理されたdllのクラスは、管理されていないクラスから派生できますか?
VisualStudio2008の使用
管理されていないdllで記述した管理されていないC++クラスがあります。アンマネージdllを参照するマネージdllがあります。管理されたdllのクラスは、管理されていないクラスから派生できますか?
VisualStudio2008の使用
できません。管理対象クラスのインスタンスはガベージコレクションされ、CLRヒープ上に作成されます。アンマネージクラスのインスタンスは、アンマネージヒープに割り当てられます。データが部分的にマネージドヒープ上にあり、そのベースデータがアンマネージドヒープ上にあるオブジェクトをどのように作成できますか?
他の手法を試す必要があります。たとえば、管理対象のコンテナを管理対象外のものにラップするか、その逆を行って、おそらくそこから派生します。
まだできません。Herb Sutter は、広範なC++/CLI Design Rationaleを書き、そのようなことが実際に可能になる日が来るかもしれないと示唆しています。しかし、Microsoft は C++/CLI のさらなる開発を停止したようですか?
最善の方法は、アンマネージ クラスをマネージャー ラッパーでラップし、そこから派生させることです。