这样的程序
Dim str As String
Dim i As Integer
str = ""
For i = 0 To 40000
str = str & "x"
Next i
vb不断地分配内存导致内存溢出
请教高手怎么用指针构造一很大的string,可以往里面塞字符串,而不是重新构造的???就好象java中的stringbuff类
Dim str As String
Dim i As Integer
str = ""
For i = 0 To 40000
str = str & "x"
Next i
vb不断地分配内存导致内存溢出
请教高手怎么用指针构造一很大的string,可以往里面塞字符串,而不是重新构造的???就好象java中的stringbuff类
Dim i As Long
str = ""
For i = 0 To 40000
str = str & "x"
Next i
是i溢出了,将Integer改成Long类型就没事了。
INTEGER 长度2个字节 存放整数-32768---32767
用copymemory填
copymemory varptr(str)+offset,varptr(addstr),length
'二进制转为十六进制
Dim aHex As String
Dim i As Long
Dim xyz As String
aHex = ""
For i = 0 To SIZE - 1
xyz = Hex(WENJIANN(i))
If Len(xyz) = 1 Then xyz = "0" & xyz
aHex = aHex & xyz
Next i
Dim i As Long
str = ""
For i = 0 To 40000
str = str & "x"
Next i
穇定长字符串可包含 1 到大约 64K ( 2^16 ) 个字符。注意 Public 定长字符串不能在类模块中使用。String 之字符码的范围是 0 到 255。字符集的前 128 个字符(0 到 127)对应于标准的 U.S. 键盘上的字符与符号。这前 128 个字符与 ASCII 字符集中所定义的相同后 128 个字符(128 到 255)则代表特殊字符,例如国际字符,重音符号,货币符号及分数。String 的类型声明字符为美圆号 ($)。
你用到40000,已经超出范围了,当然溢出了~~
'二进制转为十六进制
Dim aHex As String
Dim i As Long
Dim xyz As String
aHex = ""
For i = 0 To SIZE - 1
xyz = Hex(WENJIANN(i))
If Len(xyz) = 1 Then xyz = "0" & xyz
aHex = aHex & xyz
Next i
---------------------------------------------------
是十转十六吧
Source : 源地址
length : Copy的数据长度
你的错误前面都说明了,我不罗嗦了。