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