String 将字符串写入/读取到字节

String 将字符串写入/读取到字节,string,vb6,byte,copymemory,String,Vb6,Byte,Copymemory,这是我的代码: Public Sub WriteString(ByRef nString As String) Dim sBytes() As Byte Dim sLength As Long sLength = Len(nString) sBytes = StrConv(nString, vbFromUnicode) WriteLong sLength If sLength <= 0 Then Exit Sub If WriteHead + sLength - 1 > B

这是我的代码:

Public Sub WriteString(ByRef nString As String) 
Dim sBytes() As Byte
Dim sLength As Long

sLength = Len(nString)
sBytes = StrConv(nString, vbFromUnicode)

WriteLong sLength

If sLength <= 0 Then Exit Sub

If WriteHead + sLength - 1 > BufferSize Then Allocate sLength

CopyMemory buffer(WriteHead), sBytes(0), sLength
WriteHead = WriteHead + sLength
End Sub

Public Function ReadString(Optional MoveReadHead As Boolean = True) As String 
Dim sLength As Long
Dim sBytes() As Byte

sLength = ReadLong(False)
If sLength <= 0 Then
    If MoveReadHead Then ReadHead = ReadHead + 4
    Exit Function
End If

ReDim sBytes(sLength - 1)

CopyMemory sBytes(0), buffer(ReadHead + 4), sLength

ReadString = StrConv(sBytes, vbUnicode)
If MoveReadHead Then ReadHead = ReadHead + sLength + 4

Exit Function
End Function
Public Sub-WriteString(ByRef nString作为字符串)
Dim sBytes()作为字节
变暗长度等于长
SLENGHT=Len(nString)
sBytes=StrConv(nString,vbFromUnicode)
写长长度
如果是SLENGHT BufferSize,则分配SLENGHT
CopyMemory缓冲区(写头),字节(0),长度
写头=写头+长度
端接头
公共函数ReadString(可选MoveReadHead为Boolean=True)为String
变暗长度等于长
Dim sBytes()作为字节
sLength=ReadLong(假)

如果是sLength,“我的应用程序崩溃”到底是什么意思?您的代码有两个对
CopyMenory
的调用-哪一个“崩溃”?当您单步执行导致该调用的代码时,调试器会告诉您什么?调用时传递给
CopyMemory
的变量包含什么?什么是
WriteHead
ReadHead
?你从哪里得到无处不在的神奇数字
4
?你的
CopyMemory
声明是什么样子的?