マネージコードでメモリを割り当てるには、次を使用します。
IntPtr [] params_list_n = new IntPtr [5];
しかし、管理されていないメモリの場合、私は使用Marshal.AllocHGlobal
します。この場合、アレイにメモリを割り当てる方法がわかりません。
Marshal.GetNativeVariantForObject (o, params_list_n[i]);
理想的には、配列の各要素に対して関数呼び出しを使用したいと思います。
マネージコードでメモリを割り当てるには、次を使用します。
IntPtr [] params_list_n = new IntPtr [5];
しかし、管理されていないメモリの場合、私は使用Marshal.AllocHGlobal
します。この場合、アレイにメモリを割り当てる方法がわかりません。
Marshal.GetNativeVariantForObject (o, params_list_n[i]);
理想的には、配列の各要素に対して関数呼び出しを使用したいと思います。
Marshal.AllocHGlobalを使用したアンマネージメモリの作成は簡単です。
IntPtr pointer = Marshal.AllocHGlobal(1024);
スペースの量を計算する必要がある場合は、Marshal.SizeOfを使用できます。
int size = Marshal.SizeOf(typeof(IntPtr));
IntPtr pointer = Marshal.AllocHGlobal(size);
unsafe code
これを実行するには、プロジェクトで有効にする必要もあります。
Properties
。Build
ます。Allow unsafe code
ます。配列は要素へのポインタになります。同じように使用します。
IntPtr results = Marshal.AllocHGlobal(5 * IntPtr.Size);