2013-06-19 16 views
2

发送数据时上下C#和C++/CX之间的层,我需要到引脚的数据,我用的是GCHandleType.Pinned前工作时,我仍然需要它,还是不如现在我已经迁移到C++/CX?如果是的话我应该怎么做呢?与以前一样?我是否需要PIN数据与C#和C++/CX

谢谢!

+1

C++/CX仍然是原生代码,它不使用.NET的。如果之前需要固定,现在仍然需要。 –

+0

感谢您的信息 –

+1

但是,我不认为作为应用程序开发人员,这意味着您需要明确地进行引脚设置 - 这似乎是Windows运行时所关注的。 –

回答

2

我不认为你应该需要PIN数据。固定意味着垃圾收集器不会压缩您的对象,导致本地指针引用出错。使用WinRT,你的类是一个COM对象,它是引用计数的,而不是垃圾收集的。所以这个对象将存在于本地堆中,并且不会被压缩/重定位。

+0

谢谢你的评论,我下来发送数据而不牵制,并希望该数据不出差错,会做一些测试,将让你知道如何在这种情况下,我不得不引脚的数据,基本的测试表明,它并没有炸毁:P –

+0

当你考虑一个实现了在C++/CX中定义的接口类的.NET对象时,它确实会变得很有趣 - 是否会得到ref-counting或垃圾回收(或者两者都有)? –

+0

好点的保罗,不知道寿,我的猜测是谁曾经创建的对象调用它的垃圾收集器,但是又是我的假设,可以花几分钟时间来搜索,但我怀疑,我会发现什么,资源上C++/CX很低..:/ –

相关问题