VB的数组可不想你想得那么简单,看看MSDN中:
数据类型概述:
注意 任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。你可以在VC中的DLL把数组头指针往后移动24个字节看,或者在VB中按地址传递数组中第一个元素
数据类型概述:
注意 任何数据类型的数组都需要 20 个字节的内存空间,加上每一数组维数占 4 个字节,再加上数据本身所占用的空间。数据所占用的内存空间可以用数据元数目乘上每个元素的大小加以计算。例如,以 4 个 2 字节之 Integer 数据元所组成的一维数组中的数据,占 8 个字节。这 8 个字节加上额外的 24 个字节,使得这个数组所需总内存空间为 32 个字节。你可以在VC中的DLL把数组头指针往后移动24个字节看,或者在VB中按地址传递数组中第一个元素
VC中的DLL把数组头指针往后移动24个字节是不实际的,因为DLL通常不仅仅给VB程序调用,而且试了一下好像也不行。至于在VB中按地址传递数组中第一个元素,我不知道具体如何操作,VB如何操作内存地址?
Public Declare Function MyFun Lib "test.dll" Alias "_MyFun@4" (byref b As Long) As Long调用时传递第一个参数:
MyFun(b(0))
交个朋友,我的QQ 7050107
http://www.yaguo.com/~lvstone