私は以下のC#コードに 'アンマネージc'コードをマーシャリングしています。C#で構造化データへのマーシャルされたポインタにアクセスする方法は?
[DllImport("ContainerDll.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr NodeSearch(IntPtr firstNode, string key);
IntPtr firstNode = IntPtr.Zero;
private void button4_Click(object sender, EventArgs e)
{
IntPtr ret = NodeSearch(firstNode, "key_string");
}
//NodeSearch method will be called which is present in 'ContainerDll.dll'
//pointer to structure will be returned.
//my c-structure contains these fields.
// typedef struct container
// {
// char Name[20];
// void *VoidData;
// struct container *Link;
// }
// Node;
私のC#変数 'ret'は 'IntPtr'型で、この構造体へのポインタを取得しました。 'NodeSearch'メソッドから返されたアドレスを持ちます。
これをC#フォームアプリケーション(コンソールアプリケーションでも)にアクセスする方法は?私は初心者です
[0]、ret-> VoidDataなどret->名前:
私は、私はこのように使用することはできませんと思います!私を喜ばせることができますか?
このhttp://blogs.msdn.com/b/jaredpar/archive/2008/11/05/dereference-a-double-intptr.aspx – Adam
に感謝の返事をいただきました。これは私のために便利です。 – SHRI