[求助]ACTIVEX DLL 参数问题:调用的CALLBYNAME
VB建的ACTIVEX DLL工程:
Public Function my_ver()
my_ver = 1
End Function
Public Function my_callbyname(Object, ProcName, CallType, Args() As Variant)
my_callbyname = CallByName(Object, ProcName, CallType, Args())
End Function
VB建的 EXE工程:
MsgBox mydll.my_ver() '这个返回没问题
MsgBox CallByName(MYBEEP, "beep", 1, 1000, 1000) '这个也成功执行 第3个参数的1是Const VbMethod = 1
MsgBox mydll.my_callbyname(MYBEEP, "beep", 1, 1000, 1000)'这个就有问题了说什么:错误的参数号或无效的属性赋值
问什么EXE的第2条能执行第3条不能。应该怎么改?
下面是VB中CallByName函数原形:
Function CallByName(Object As Object, ProcName As String, CallType As VbCallType, Args() As Variant)
[解决办法]
在dll里的自定义函数参数类型可能有误
Public Function my_callbyname(Object, ProcName, CallType, Args() as long)