2011-01-19 57 views
0

我有一個指向本地類的指針,並且想暫時將它包裝在一個對象中。我假設System :: Reflection :: Pointer :: Box()函數將是要走的路。不過,我無法格式化第二個參數。拳擊原生C++指針

class A {} 
A * a; 
Object^o = Box(a, A::typeid); 

我得到一個運行時錯誤,說'類型必須是指針',因爲我認爲它應該是。但我無法弄清楚語法。

+1

這是C++/CLI,而不是C++,對不對? – 2011-01-19 01:26:32

+0

是的。 (嗯,評論最少15個字符,誰會給它加分)。 – Nicholas 2011-01-19 01:30:13

回答

1

我無法得到System.Reflection.Pointer.Box也能工作,但發現有能力做你謙虛地用IntPtr努力嘗試。

A * a = new A; 
Object ^o = gcnew IntPtr(a); // a is boxed in o 
IntPtr i = safe_cast<IntPtr>(o); // Unbox the IntPtr 
A * aIsBack = static_cast<A*>(i.ToPointer()); // Retrieve a