我需要使用一个com组件,其自带的IDL文件申明是:methodA([out] structA** ppA),当我直接用vs2008引用com组件将其导入后就自动变成了methodA(intptr ppA),
该指针最终指向一个结构structA,请问我该怎么使用methodA,并且获取得到那个结构体里面的数据?
目前我使用以下代码,请问有什么错误?
IntPtr v;
IntPtr pv;
v = Marshal.AllocCoTaskMem(4);
pv = Marshal.AllocCoTaskMem(4);
methodA(v);
pv = (IntPtr)Marshal.PtrToStructure(v, typeof(IntPtr));
structA a=(structA)Marshal.PtrToStructure(pv, typeof(structA));