我编写了一个activex dll,Jdsel
其中有一个类Pepmsg在类我定义了一个数据类型
public type Getstr
    errstr as string
    out1 as string
    out2 as string
end type
还有一个方法用来返回错误字符串和两个结果
public function SetPep(byref Siel as getstr) as booleen
    ...........
    siel.errstr="已经成功调用数据"
    siel.out1="结果1"
    siel.out2="结果2"
    ...........
end function
编译成了dll文件,在另一个工程中引用它在另一个工程中我是这样定义的
在一个模块中定义类型
public type Getstr
    errstr as string
    out1 as string
    out2 as string
end type在程序中调用
dim K as getstr
dim i as boolee
i=setpep(k)
程序报错误,说byref类型不正确!!!!!!!
我在工程中直接引用Jdsel却不报错误,为什么???

解决方案 »

  1.   

    如果你在一个公共的类中创建了Public类型的自定义数据类型,那么在其他需要使用这个类的地方,不用去再次定义这个数据类型,例如在一个工程A中定义了公共的Class B中定义了:
    public type UserType
    ...
    ...
    end type
    然后定义了函数:
    public function someFun(byval V as UserType ) as long
    ... 
    ...
    end function
    那么在使用的时候:
    dim obj as new B.A
    dim v as B.UserType
    dim lRet as longwith v
     ...=...
     ...=...
    end withlRet=obj.someFun(v)