マネージコードでshort型の配列へのポインタを含む構造体を表現する方法に問題があります。構造体は次のようになります「shortValues
」のタイプの配列へのポインターをマーシャリングする(マネージC# - >アンマネージC++)
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
メモリは、アンマネージコードの内部に割り当てられている - したがって、そのフィールドは、単に短い値の配列へのポインタであってもそのように、間接の追加のレベルが加え割り当てられたメモリは呼び出し元(マネージコード)にも見えます。 'size
'フィールドは、配列内の要素の数を表します。これをマネージコードでどのように表現すればよいですか?
IntPtr
に渡すと思っていましたが、管理されていない呼び出しが戻ったときに値にアクセスする方法を理解できませんでした。
このコードは、私にとってはまさに正しいものです。ありがとうdtb!私はあなたの注意を払っている間に、別の質問をすることができますか?私は別のスレッドでそれを投稿しました: http://stackoverflow.com/questions/1323797/marshaling-pointer-to-an-array-of-strings – Dilip
ご意見:あなたの質問に答えを投稿するよりもあなたの質問を更新してください新しい内容の質問。また、答えがあなたの問題を解決するなら、それを受け入れることを忘れないでください! :) – dtb
@dtb:私はここで盲目でなければならないが、私はどのように答えを "受け入れる"のですか? – Dilip