dim a() as byte
dim b as longfunc transData()
    redim a(100,100) as byte
    b=某已分配的地址    copymemory a(0,0),b,100*100end func
这样的用法对不对啊?VB的二维数组分配是怎样的?

解决方案 »

  1.   

    自己debug.print出来不就知道了?
      

  2.   

    也可以用msgbox a(0,0)   看看值是多少
      

  3.   

    LZ那后面100*100是啥意思?你知道B的地址是多大的啊?就知道分配100*100  ?
      

  4.   

    copymemory a(0,0),byval b,100*100
    而且b指向的区域不小于100*100,否则可能有非法操作
      

  5.   

    API 的整数是 32bit
    VB 的整数是 16bit
    VB 的长整数是 32bit因此,应该写:
    copymemory a(0,0), b, 100&*100&当然,上面只写一个 & 也可以。
    还有一个很不确定的、比较关键的问题:
      就是你的 b=某已分配的地址目前无法确认其“实质”,不知道会不会是你想要的结果。
      

  6.   

    关键是 copymemory 是如何声明的,如果前两参数都是 Any 类型的,那么4楼 ByVal b 的方式就是正确的。