在DLL里定义时应该用指针作参数,在VB里面,只要把结构变量定义成 Long 类型就可以了,调用的时候传入地址就是在调用的时候,在参数前面加 ByVal 就可以了

解决方案 »

  1.   

    这个我明白,但dll是别人给过来的,我改不了。所以我想请教有没有别的方法绕过这个问题。
      

  2.   

    typedef struct {
    long nNumber;
    char strName[32];
    float fScore[16];
    long nCredit[16];
    }stcStudentInfo;
    大体就是这些数据了
    多谢大侠!
      

  3.   

    Public Declare Sub SetValue lib "*.dll" (ByVal Number as Long , stcStudentInfo as Any)
      

  4.   

    as Any恐怕不行吧。as Any好像一般都用于void *
    as Any传过去的应该是地址吧,但dll那边接的是值啊,这样会乱的