1

我有一个未管理的 C++ 类,我用未管理的 dll 编写。我有一个引用非托管 dll 的托管 dll。托管 dll 中的类可以派生自非托管类吗?

使用 Visual Studio 2008

4

3 回答 3

5

你不能。托管类的实例在 CLR 堆上进行垃圾收集和创建。非托管类的实例分配在非托管堆上。您如何能够创建一个对象,其数据部分位于托管堆上,其基础数据位于非托管堆上?

您应该尝试其他技术,例如将托管容器包装在非托管事物上,反之亦然,并可能从中派生。

于 2009-02-02T22:23:23.503 回答
1

你还不能。Herb Sutter 写了一篇详尽的C++/CLI Design Rationale,他暗示有一天这样的事情确实可能实现。但是,微软似乎停止了 C++/CLI 的进一步开发?

于 2009-03-21T05:30:24.653 回答
0

您能做的最好的事情是将您的非托管类包装在管理器包装器中,然后从中派生。

于 2009-04-22T10:41:30.033 回答