中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

vb.net結構體byte數組相互轉換怎么實現

小億
150
2023-10-24 10:53:16
欄目: 編程語言

在VB.NET中,可以使用Marshal類的PtrToStructure方法和StructureToPtr方法來實現結構體和字節數組之間的相互轉換。

以下是一個示例代碼:

```vb
Imports System.Runtime.InteropServices

Public Structure MyStruct
   Public Field1 As Integer
   Public Field2 As Double
End Structure

Public Class Program
   Public Shared Sub Main()
       ' 創建一個結構體實例
       Dim myStruct As New MyStruct()
       myStruct.Field1 = 10
       myStruct.Field2 = 3.14

       ' 將結構體轉換為字節數組
       Dim byteSize As Integer = Marshal.SizeOf(myStruct)
       Dim byteArray(byteSize - 1) As Byte
       Dim structPtr As IntPtr = Marshal.AllocHGlobal(byteSize)
       Marshal.StructureToPtr(myStruct, structPtr, False)
       Marshal.Copy(structPtr, byteArray, 0, byteSize)
       Marshal.FreeHGlobal(structPtr)

       ' 將字節數組轉換回結構體
       Dim newStruct As MyStruct = New MyStruct()
       structPtr = Marshal.AllocHGlobal(byteSize)
       Marshal.Copy(byteArray, 0, structPtr, byteSize)
       newStruct = Marshal.PtrToStructure(structPtr, GetType(MyStruct))
       Marshal.FreeHGlobal(structPtr)

       ' 輸出轉換后的結構體字段值
       Console.WriteLine("Field1: " & newStruct.Field1)
       Console.WriteLine("Field2: " & newStruct.Field2)
   End Sub
End Class
```

運行以上代碼,將會輸出:

```
Field1: 10
Field2: 3.14
```

這樣就實現了結構體和字節數組之間的相互轉換。

0
剑阁县| 江源县| 宜都市| 台中县| 呼伦贝尔市| 桂东县| 渝中区| 镇康县| 博罗县| 铜陵市| 调兵山市| 伊通| 铜川市| 资兴市| 黑龙江省| 清镇市| 铁力市| 武强县| 嘉禾县| 栾城县| 同江市| 噶尔县| 霸州市| 额尔古纳市| 都江堰市| 靖远县| 东乌珠穆沁旗| 遵义市| 台北市| 台中县| 麟游县| 米易县| 鄢陵县| 寿宁县| 东宁县| 巴彦淖尔市| 开鲁县| 博乐市| 吉首市| 枣强县| 崇州市|