2011-01-19 12 views
0

私はネイティブクラスへのポインターを持っていて、それを一時的にObjectにラップしたい。私はSystem :: Reflection :: Pointer :: Box()関数が行く方法だと仮定します。しかし、私はそれに2番目のパラメータをフォーマットするのに問題があります。ボクシングのネイティブC++ポインター

ランタイムエラーが発生すると、「タイプはポインタにする必要があります」と表示されるはずです。しかし、私は構文を理解することはできません。

+1

これはC++ではなく、C++です。 –

+0

はい。 (えええええええええええええええええええええええええええええええええええええええええええ、15文字の最小値、誰がそれを賞賛しましたか? – Nicholas

答えて

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 
+0

ありがとうございます。 Box()ほどエレガントではありませんが、前処理ディレクティブでは修正できません。 – Nicholas