在VB的前台程序中,调用一个VC的DLL中的函数,该函数中有一个
自定义的类型,我分别在VB和VC中都声明了该类型,但系统总报“参数类型不匹配!”为什么?请问如何将VB中的自定义类型数据传入VC的DLL(动态链接库)中?我的调用或声明类型的
方法对吗?VB中声明类型及调用方法
Type UserLogin
    NAME As String        '/* 用户名称 */
    PASSWORD As String    '/* 用户口令 */
End Type
DIM a as UserLogin
函数 test1(a)DLL:VC++6
VC中声明类型及函数
struct UserLogin {
     char NAME[100];   /*用户名称*/
     char PASSWORD[100];   /*用户口令*/
               }  ;
int test1(struct UserLogin *userinfo)
{
........
}

解决方案 »

  1.   

    将VB的声明改成
    Type UserLogin
        NAME As byte(1 to 100)        '/* 用户名称 */
        PASSWORD As byte(1 to 100)    '/* 用户口令 */
    End Type字节数组可以用strconv得到.也可以配合CopyMemory
    VB声明:
    test1(byref userinfo as UserLogin)
      

  2.   

    试试这样
    Type UserLogin
        NAME As String * 100        '/* 用户名称 */
        PASSWORD As String * 100    '/* 用户口令 */
    End Type