apa*_*aka 11 c# c++ interop .net-4.0 marshalling
非托管代码调用我的函数.在第一个函数中,我应该将指针传递给我的托管对象.有时候稍后我的其他一些函数会被调用与指针之一相同的指针.我应该取消引用它并使用它来执行一些计算,然后如果不需要处理它.为了缩短故事,我需要固定该对象,以便GC在我处理它之前不会移动它.如何在C#中做到这一点?提前致谢.
Ale*_*x F 10
要在C#中固定对象,可以使用GCHandle.Alloc
带有第二个参数的方法GCHandleType.Pinned
.对象保持固定,直到GCHandle
使用GCHandle.Free
方法释放实例.