2010-07-03 103 views
0

我有一个包含非托管类指针托管类:传递包含在管理类非托管指针字段非托管代码

class Managed { public IntPtr ptr; }; 

C++函数,它接受一个指针作为参数:

void foo(void *ptr); 

应该怎么在调用非托管函数之前固定此托管对象?

调用代码:

Managed obj = new Managed; 
foo(obj.ptr); 

回答

2

我不明白为什么你需要用别针把它 - 即使GC移动obj本身的obj.ptr值应该不会受到影响 - 而obj.ptr传递到你的C++代码的值,所以它不像C++代码可以尝试改变obj的内容。

+0

谢谢,这是我所假设的。 – Benny 2010-07-03 07:57:59