本帖最后由 kndyc 于 2009-06-10 19:29:56 编辑

解决方案 »

  1.   

    你的做法是错误的,如果你只想输出第一维数,我想你最好是重新定义一个一维的数组用来存放你的多维数组的要发送的维,再将这个一维数组付给Mscomm.output
      

  2.   

    数组的维数不应该这样理解吧?假如是二维TxBuff(1,1),那它就有
    TxBuff(0,0)TxBuff(0,1)
    TxBuff(1,0),TxBuff(1,1)
    四个元素,引用时也只能这样:TxBuff(X,X)
      

  3.   

    只有在某些特别的情况下可以实现引用多维数组的"某一维"VB的多维数组在内存中的排列是按照先左位后右位的次序排列的,因此,最左面那一维的数据实际上在内存中是连续排列的,因此也是可以使用COPYMEMORY之类的API整列复制到一个一维数组中的.举个例子:
    DIM A(3,1) AS LONG
    ...初试化数组并附值
    数组A在内存中的排列次序为:
    A(0,0),A(1,0),A(2,0),A(3,0),A(0,1),A(1,1),A(2,1),A(3,1)SO,如果你需要"引用"的是左面那一维,就可以直接将整列数据复制到另一个数组了.
    我在这里有一个详细例子供你参考,http://download.csdn.net/source/325042
    虽然例子本身是探讨所谓的"VB数组指针技术"的真实意义,但是实际上也包含了你所说的问题了.