我有一个无人管理的C ++类,我用无人的dll写的。我有一个托管的dll引用了非托管的dll。托管dll中的类可以来自非托管类吗?
使用Visual Studio 2008
答案 0 :(得分:5)
你做不到。托管类的实例是在CLR堆上进行垃圾收集和创建的。非托管类的实例在非托管堆上分配。你怎么能够创建一个对象,其数据部分位于托管堆上,而其基础数据位于非托管堆上?
你应该尝试其他技术,例如将托管容器包装在非托管事物上,反之亦然,并从中派生出来。
答案 1 :(得分:1)
你不能呢。赫伯萨特写了一篇广泛的C++/CLI Design Rationale,他暗示有一天这样的事情确实可能发生。但是,似乎微软已停止进一步开发C ++ / CLI?
答案 2 :(得分:0)
你能做的最好的事情就是在管理器包装器中包装你的非托管类,然后从中派生出来。