1

String^ のリストをパラメーターとして受け取るマネージ C++ メソッドがあります。

このメソッドは、String^ 内のメモリへのポインターを使用してアンマネージ構造体を設定する必要があります。

WCHAR* の抽出は、PtrToStringChars で十分に簡単です

ただし、設計時に割り当てる pin_ptr の数がわかりません

以下のようなもので、固定されたptrをリストに追加したいと思います List< pin_ptr< const wchar_t>>

これを行うと、エラー C3225 が生成されます: 'T' のジェネリック型引数は 'cli::pin_ptr' にすることはできません。値型または参照へのハンドルでなければなりません

これを行う方法はありますか?マネージ C++ で

4

1 に答える 1

1

さて、あなたにはいくつかの問題があります。最初の pin_ptr はマネージド型ではないため、リストに入れることはできません。以下を除いて、代わりに C++ ベクトルを使用できます。

ピニング ポインターは、スタック上の非静的ローカル変数としてのみ宣言できます。

http://msdn.microsoft.com/en-us/library/1dz8byfh%28VS.80%29.aspxから。

代わりに、 GCHandleTypeが PinnedであるGCHandlesを直接使用する必要があります。

于 2010-02-15T03:17:49.377 に答える