大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
CopyMemory()函数功能描述:将一块内存的数据从一个位置复制到另一个位置。
目前成都创新互联公司已为上千的企业提供了网站建设、域名、网页空间、网站托管、服务器托管、企业网站设计、蚌山网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
函数原型
VOID CopyMemory(PVOID Destination,CONST VOID *Source,SIZE_T Length);
参数
Destination要复制内存块的目的地址。
Source要复制内存块的源地址。
Length指定要复制内存块的大小,单位为字节
返回值该函数为VOID型,没有返回值。
备注如果目的块与源块有交叠,结果是不可预料的,使用MoveMemory可以解决这个问题。
注意一点CopyMemory和MoveMemory不过是RtlMoveMemory的一个别名而已
示例代码段
char szname[50]="阵雨";
char szfriend[]="polelf,oo";
CopyMemory(szname+4,szfriend,10);
OutputDebugString(szname);//输出结果为"阵雨polelf,oo"
vb6的声明:
Private Declare Sub CopyMemory Lib "kernel32" Alias"RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length AsLong)
vb里面没有这样的函数,CopyMemory是可以的,看看下面的实例
vb6在我机子上用下面数据测试 时间差20倍左右,十万个数据就可以看出来了,我用的是一百万
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim arrA() As Long
Dim arrB() As Long
ReDim arrA(1 To 1000000)
ReDim arrB(2 To 1000000)
For i = 1 To 1000000
arrA(i) = i
Next i
'取得开机至今的毫秒数
T = GetTickCount
For i = 2 To 1000000
arrB(i) = arrA(i)
Next
MsgBox "用时" + Str$(GetTickCount - T) + "毫秒"
'我的机子用时200毫秒左右,机子老古董了比较慢不要见笑
ReDim arrB(2 To 1000000) '注意这行已经清空了上面的赋值
T = GetTickCount
CopyMemory arrB(2), arrA(2), LenB(arrA(1)) * 999999
MsgBox "用时" + Str$(GetTickCount - T) + "毫秒"
'我的机子用时10毫秒左右
'看看最后一个数据对不对
MsgBox arrB(1000000)
End Sub
你这个Text()()是一个二维数组?
将数字直接定义成text box类型,并将己所添加的textbox实例复制给数组的相关项,这样就能通过数组的形式访问了。。。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ListboxTotalItem As Integer = ListBox1.Items.Count - 1
Dim a(ListboxTotalItem) As String
For i As Integer = 0 To ListboxTotalItem
a(i) = i
Next
Label1.Text = a(5)
End Sub
End Class
-------------
一个Form1
一个Label1
一个Listbox1
一个Button1
在Listbox1中加入10个值
-------------
只是一个演示,其他的要靠自己。