2011-06-08 34 views
0

我想存儲指向本地類System::Object^和檢索回來。存儲和檢索系統原生指針:對象^

class ABC; 

ABC * d = new ABC(); 

System::Object^ Tag; 
Tag = d; //This throws an error 

//in a different function 

ABC * c = safe_cast<ABC*>Tag; // this throws an error. 

哪種方法可以達到上述目的?

+0

你不能只保存本機的指針?爲什麼它必須是一個對象? – stijn 2011-06-08 06:35:37

+0

它的ListViewItem的標記屬性。 – User234 2011-06-08 06:38:39

回答

0

使用IntPtr的結構,而不是對象。

 
IntPtr Tag(d); 

ABC * c = (ABC*)Tag.ToPointer(); 
+0

需要存儲的ListViewItem的Tag屬性的指針。類型是系統::對象^ – User234 2011-06-08 06:39:13

+0

@Ravikiran:閱讀[拳擊](http://msdn.microsoft.com/en-us/library/c53ss7ze.aspx)。 – ildjarn 2011-06-08 06:55:02

+0

@Ravikiran - 您可以使用gcnew InpPtr將其轉化爲對象^使用拳。 – 2011-06-08 06:59:05