当前位置:编程学习 > C#/ASP.NET >>

关于c#调用c++dll 的问题

我现在要在c#中调用c++的dll,遇到一个问题:
1、定义结构:
[StructureLayout(LayoutKid.Sequential)]
public struct Hinf
{
……
};
2、定义一个结构变量,赋初值:
Hinf hinf = new Hinf();
……
3、转换成指针
int size = Marshal.SizeOf(hinf);
IntPtr ptr = Marshal.AllocHGlobal(size);
Marshal.StructureToPtr(hinf, ptr, true);
Marshal.FreeHGlobal(ptr);
……

现在执行Marshal.StructureToPtr(hinf, ptr, true);这一句的时候报错:
传递给系统调用的数据区域太小。(异常来自HRESULT:0x8007007A)
请问各位高手,这是怎么回事?是否和定义的结构有关?
C# Structure
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,