0
我有一个包含非托管类指针托管类:传递包含在管理类非托管指针字段非托管代码
class Managed { public IntPtr ptr; };
C++函数,它接受一个指针作为参数:
void foo(void *ptr);
应该怎么在调用非托管函数之前固定此托管对象?
调用代码:
Managed obj = new Managed;
foo(obj.ptr);
我有一个包含非托管类指针托管类:传递包含在管理类非托管指针字段非托管代码
class Managed { public IntPtr ptr; };
C++函数,它接受一个指针作为参数:
void foo(void *ptr);
应该怎么在调用非托管函数之前固定此托管对象?
调用代码:
Managed obj = new Managed;
foo(obj.ptr);
我不明白为什么你需要用别针把它 - 即使GC移动obj
本身的obj.ptr
值应该不会受到影响 - 而obj.ptr
传递到你的C++代码的值,所以它不像C++代码可以尝试改变obj
的内容。
谢谢,这是我所假设的。 – Benny 2010-07-03 07:57:59