已经数组A的内容,怎样使用(一定要用这个)CopyMemory,使得B数组有相同内容?请示例。
解决方案 »
- 在类模块A中有个函数F1,在类模块B中如何调用F1这个函数?
- 查询字符的时候尽管能实现功能,但是输入的成乱码了,怎么办
- 讨论一下程序大规模并发的问题.请各位感兴趣的朋友来看看~!不仅限于vb
- 生日,散分,并祝大家国庆快乐!
- 想用vba从word中提取数据放到access中,出了点问题请高手解决一下
- 如何在程序中实现AUTOCAD相同的功能
- 是否有在VB中打开excel文件的控件之问题
- 谁知道编写进销存的问题???(急))!!!!
- 一个很简单的问题????????
- 如何计算两个时间的分钟数。
- 关于重启计算机的问题
- 使用API在托盘区弱出菜单后,当鼠标移到其它地方点击,比如说桌面,菜单不能收回,请问如何解决。
不能用a,b
copymemeory a(0) b(0)
以此类推
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal pDst As Long,ByVal pSrc As Long, ByVal ByteLen As Long)CopyMemory VarPtrArray(b),VarPtrArray(a),(UBound(a) - LBound(a)) * LenB(a(0))前提是(UBound(b)-LBound(b)) * LenB(b(0)) > (UBound(a) - LBound(a)) * LenB(a(0))
否则可能会出现GPF或非法内存访问.
这样写与数据组的类形无关,可以把一种数组拷贝到另一种数组中去.
'前提A、B均为一维数组,类型相同,且B定义的元素比A多
'p、ASize、AElements为临时变量
'不用LenB是因为类型为Variant时得不到正确的ASize
CopyMemory p, ByVal VarPtrArray(A), 4
CopyMemory ASize, ByVal (p + 4), 4
CopyMemory AElements, ByVal (p + 16), 2
CopyMemory B(0), ByVal VarPtr(A(0)), ASize * AElements不知A和B为不同类型时,怎么解决?