求一个C#的简单问题

Carpathia 2009-09-16 08:55:16
C++传过来的是一个结构体数组,比如stest是一个strust结构体,要求传过来的是一个strust[] ,但是我这里C#接收的话就有问题了,int nSize = Marshal.SizeOf(typeof(stest));这里无论如何都转换不过去,不知道该如何转换
...全文
95 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
TTOJJ 2009-09-16
  • 打赏
  • 举报
回复
给你一个例子

结构:
[StructLayout(LayoutKind.Sequential)]
public struct SHFILEINFO//172
{
public IntPtr hIcon;//4
public Int32 iIcon;//4
public uint dwAttributes;//4

[MarshalAs(UnmanagedType.ByValArray, SizeConst =80)]
public char[] szDisplayName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 80)]
public char[] szTypeName ;
}
获得大小
int size =Marshal.SizeOf(typeof(SHFILEINFO));

注意这个 --[StructLayout(LayoutKind.Sequential)]按次序排列在内存中
还有这个-- [MarshalAs(UnmanagedType.ByValArray, SizeConst =80)] 定义一下数组的大小

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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