请教c#高手,这个问题已经折磨我很久了,结构体和指针问题

newcsharpgirl1982 2005-11-23 03:45:03
IntPtr dp_ptr = GetMemMap("DpTableMem", Win32.FILE_MAP_READ); //获得内存映像文件,

IntPtr类型

struct DPTABLE
{
public int iUsed;

[ MarshalAs( UnmanagedType.ByValArray, SizeConst=8 )] //设置结构体

数组数组大小
public DPINDEX []struDpIndex; //DPINDEX是另外一个结构体
}


DPTABLE *indextable ; //结构类型的

indextable = (DPTABLE *) dp_ptr.ToPointer();

为什么编译总是报:无法获取托管类型(“ThisNetManager.DPTABLE”)的变量地址或大小,
可是我把结构数组注释掉,就能编译,请教一下是什么原因啊,为什么c#不能获得结构数组大小

...全文
399 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bailong_ch 2005-11-27
  • 打赏
  • 举报
回复
MarshalAs( UnmanagedType.ByValArray, SizeConst=8 )]

C#方法的参数不可指定值(SizeConst=8)

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧