一个DLL文件中有两个函数int  read(char * shuzu[]);
int write(char * shuzu2[]);第一个函数 需要将VB中的27字节数组(byref方式)传给它做参数 ,以将read函数读取出的数据传出来,
第二个函数,需要一个27字节数组(BYREF方式)传给它做参数,以将外部需要写的数据传到函数中去,请问这两个函数如何定义.

解决方案 »

  1.   

    c的int大家都在vb里面写成long了,c的*char你可以在vb写成string
      

  2.   

    Private Declare Function ReadA Lib "xxx.dll" Alias "read" (pArray As Any) As Long
    ReadA(arr(0))
      

  3.   

    char * shuzu[]
    成员是字符指针的数组!?
      

  4.   

    这样定义int read(char **shuzu);  // 就是所谓的指针的指针
      

  5.   

    还有,VB的结构体是COM标准的,在VC里如果要和VB接口,简单的数据传递可以直接用指针实现,
    如果涉及到比较复杂的结构,最好用COM的数据类型来处理。
    比如VB的String,可以用BSTR类型来处理,但VB的数组,用VARIANT类型来处理。
    至于VC中的VARIANT类型,在VC操作中有相应的API函数可以处理数组,只是转换起来稍微麻烦点。