バイト配列にする

<戻る

ここに載せてあるソースコードは、参考のために載せてあります

サンプルコードは、一番下にLZHとしてあります




Option Explicit

'型←配列や、配列←型にするAPIです
'このAPIは、VBではサポートされていないようなので
'                ~~~~~~~~~~~~~~~~~~
'使用するときは注意してください。
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal ByteLen As Long)

'構造体の宣言です
Private Type type_X
    a As String * 50
    b As String * 12
    c As String * 15
    d As Long
    e As Long
End Type

'グローバル変数は、バイト配列だけです
Dim bytArr() As Byte

Private Sub Command1_Click()
    Dim x1 As type_X, xLen1 As Integer
    
    '構造体の大きさを取得します
    xLen1 = LenB(x1)
    
    '情報の設定です
    x1.a = "あいうえお"
    x1.b = "黒猫ルキア"
    x1.c = "ken3@24h.co.jp"
    x1.d = 256
    x1.e = 500
    
    '配列の大きさを変えます(0も含むから-1にしています)
    ReDim bytArr(xLen1 - 1)
    
    '「配列←型」にします
    CopyMemory bytArr(0), x1, xLen1
    
    'コマンドボタンの制御です
    Command1.Enabled = False
    Command2.Enabled = True
    
    'バイト配列になった情報を見たい時は、
    'ここにStopなどを書いて、
    'ローカルウィンドウでみましょう
    
End Sub

Private Sub Command2_Click()
    Dim x2 As type_X, xLen2 As Integer
    
    '構造体の大きさを取得します
    xLen2 = LenB(x2)
    
     '「型←配列」にします
    CopyMemory x2, bytArr(0), xLen2
    
    '復元された情報をイミディエイトウィンドウに表示します
    Debug.Print x2.a
    Debug.Print x2.b
    Debug.Print x2.c
    Debug.Print x2.d
    Debug.Print x2.e
    
    'コマンドボタンの制御です
    Command1.Enabled = True
    Command2.Enabled = False
    
End Sub

Private Sub Form_Load()
    '初期設定です
    Command2.Enabled = False
End Sub



<戻る

Sample55.lzh


http://www.vector.co.jp/authors/VA015521/