2010-07-03 159 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