dim Ncb(100) as byte即可 如果是想处理字符串可以这样: Dim Ncb As String * 100 Ncb = String(100, Chr(0))
动用API,先建立一个和NCB结构等长度的byte数组然后copymemory过去! HOHO!
可不可以这样: dim n as byte n = 0dim aNCB as NCBcopymemory aNCB,byval n ,Len(aNCB)
Option ExplicitPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long) '建立一个NCB结构 Private Type NCB a As Long b As Integer End Type Private Sub Command1_Click() Dim ncbTest As NCB Dim aryZero() As Byte '创建一个和NCB等长的全0字节数组 ReDim aryZero(Len(ncbTest)) '给NCB赋一些初始值看看效果 ncbTest.a = 123 ncbTest.b = 456 'CopyMemory之前的输出测试 Debug.Print ncbTest.a, ncbTest.b CopyMemory ncbTest.a, aryZero(0), Len(ncbTest) 'CopyMemory之后的输出验证 Debug.Print ncbTest.a, ncbTest.b
如果是想处理字符串可以这样:
Dim Ncb As String * 100
Ncb = String(100, Chr(0))
HOHO!
dim n as byte
n = 0dim aNCB as NCBcopymemory aNCB,byval n ,Len(aNCB)
'建立一个NCB结构
Private Type NCB
a As Long
b As Integer
End Type
Private Sub Command1_Click()
Dim ncbTest As NCB
Dim aryZero() As Byte
'创建一个和NCB等长的全0字节数组
ReDim aryZero(Len(ncbTest))
'给NCB赋一些初始值看看效果
ncbTest.a = 123
ncbTest.b = 456
'CopyMemory之前的输出测试
Debug.Print ncbTest.a, ncbTest.b
CopyMemory ncbTest.a, aryZero(0), Len(ncbTest)
'CopyMemory之后的输出验证
Debug.Print ncbTest.a, ncbTest.b
End Sub
输出: 123 456
0 0