我把一个结构体变量用CopyMemory转撚到一个BYTE数组里再从这个BYTE数组里还原出这个结构体type xxx
x1 as string * 10
x2 as string *10
end type假设定义A是上面的结构体变量赋值A.x1="123" A.x2="abc"将A转换为BYTE数组再还原到同一结构体变量B中debug.print B.x1得到“1 2 3 ”(中间有空格)
B.x2也是如此
若A.x1="1234567890"
则转换后debug.print B.x2输出结果为“1 2 3 4 5 ”超过10个字符后面自动被截断不知道是什么原因造成的,用LenB()得出A和B的字节长度是一致的。在线等答案!先谢谢各位了
解决方案 »
- 急!水晶报表问题!问题解决,用1000相赠!
- 求救呀!!!我的硬盘被别人格式化了,恢复完后,EXCEL,WORD文件名称都变成file1.xls,file2.xls,file3.xls了但文件可以正常打开?那么好
- vb中如何判断局域网中IP地址跟自己的IP地址有冲突?
- 用createdatabase创建一个access数据库时,怎么同时给这个库加密码呢
- 请教sqlserver7中大量数据查询的问题
- 有没有人会用资源文件,交流一下。
- 用VB 开发数据库中如何通过ADODC控件用SQL 来删除一批数据??
- 各位大哥,请问……
- 在存储过程中这条语句怎么不能执行呢!
- 我是个菜鸟,问的问题很菜哦。。。。。。(与数据库有关)
- 进程-端口-IP地址关联演示2(再次送给大家一个礼物)
- Int(Rnd() * 11)可以得到0-10的整数吗?
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)Private Type xxx
x1 As String * 10
x2 As String * 10
End TypePrivate Sub Form_Load()
Dim x As xxx, b() As Byte
x.x1 = "1234"
x.x2 = "6789" ReDim b(Len(x)) CopyMemory b(0), x, Len(x) x.x1 = ""
x.x2 = "" CopyMemory x, b(0), Len(x) Debug.Print x.x1, x.x2
End Sub
按塞北雪貂的代码偶改了一下。可以正常转换偶以前用的计算长度用的是LenB()。改成Len就可以了看了雪情的解释茅厕顿开谢谢两位