结构体里可以包含另一个结构体吗?

flyer79 2005-01-21 12:35:56
我的程序里有两个结构体,因为要用来发socket所以都是Byte,现在结构体A中的AD4要为结构体B的内容。AD1为包含了结构体B后的结构体A的长度。小弟实在是搞不定,求高手解决,分不够可再加。

Public Structure A
Dim AD1() As Byte
Dim AD2() As Byte
Dim AD3() As Byte
Dim AD4() As Byte
End Structure

Public Structure B
Dim BD1() As Byte
Dim BD2() As Byte
Dim BD3() As Byte
......
End Structure
...全文
949 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyer79 2005-01-21
  • 打赏
  • 举报
回复
上面这位大哥,可以说详细一点吗?我想了很多办法,都没能把结构体B的值付给AD4。应该怎么附值呢?
北京的雾霾天 2005-01-21
  • 打赏
  • 举报
回复
包含后的System.Runtime.InteropServices.Marshal.SizeOf大小是所有被包含的结构大小之和.
北京的雾霾天 2005-01-21
  • 打赏
  • 举报
回复
结构体里可以包含另一个结构体.
flyer79 2005-01-21
  • 打赏
  • 举报
回复
谢谢,谢谢,谢谢诸位大哥,小弟初次用结构体,让你们笑话了!
  • 打赏
  • 举报
回复
可以吧。
jialiang 2005-01-21
  • 打赏
  • 举报
回复
可以
北京的雾霾天 2005-01-21
  • 打赏
  • 举报
回复
我不知道有没有理解了你的意思,代码如下:

struct a
{
public int aa1;
public int aa2;
}

struct b
{
public int size;//大小
public a aa; //包含结构a的数据类型.
}
private void button1_Click(object sender, System.EventArgs e)
{
//对a的变量a设置值
a a;
a.aa1 = 1;
a.aa2 = 2;

b b;
b.size = 0; //设置初值
b.aa = a; //设置为a的值
b.size = System.Runtime.InteropServices.Marshal.SizeOf(b); //新的结构的大小
}
webserv2 2005-01-21
  • 打赏
  • 举报
回复
结构体里完全可以包含另一个结构体

Public Structure A
Dim AD1() As Byte
Dim AD2() As Byte
Dim AD3() As Byte
Dim AD4() As B

End Structure

Public Structure B
Dim BD1() As Byte
Dim BD2() As Byte
Dim BD3() As Byte
......
End Structure

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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