gpt4 book ai didi

c# - 将不同的结构复制到字节数组

转载 作者:行者123 更新时间:2023-11-30 21:01:03 25 4
gpt4 key购买 nike

我正在将旧的 Visual BASIC 程序转换为 C#。该程序通过串行或以太网线路向某些工业机械发送消息。为此,它会创建消息的字节数组。

问题是有许多 (~50) 种不同的消息格式,每一种都在VB6 中定义为用户定义类型。例如。

Public Type K_QCHECK
Header As K_HEADER3
Count As LNG4
crc As INT2
End Type

(LNG4 和 INT2 是自定义类型)通过自动翻译工具运行 VB6 代码,我得到一个 C# 结构:

public struct K_QCHECK
{
public K_HEADER3 Header;
public LNG4 Count;
public INT2 crc;
}

但是旧的 VB6 代码使用 LSet 将这些复制到字节数组。这取决于类型代表连续内存块的假设。但在 C# 中,编译器在内存中布局内容的方式应该是程序员无法访问的实现细节。

那么将这些不同结构的内容放入字节数组的最佳方法是什么?我可以让每个类成为一个类,并给它一个 CopyToByteArray 方法或运算符,但其中有 50 个,所以看起来工作量很大。提前感谢您的任何建议!

最佳答案

这可能不是正确的解决方案,但有一个 StructLayoutAttribute 可以让您明确定义结构在内存中的布局方式。

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.structlayoutattribute%28v=vs.110%29.aspx

关于c# - 将不同的结构复制到字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14485653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com