读书人

HELP 调用DLL传接参数时出错

发布时间: 2011-12-17 23:37:33 作者: rapoo

HELP 调用DLL传递参数时出错
Dim Mtypec As Type
Dim Mobject As Object

Mtypec = Type.GetTypeFromProgID( "MOD.MD5 ")
If Mtypec Is Nothing Then
Mobject = Nothing
Else
Mobject = Activator.CreateInstance(Mtypec)
Dim params1() As Object = { "HELLO "}
Dim params2(1) As Object
params2(0)= "HELLO "

使用 params1 传递参数 : 成功
RStr= Mtypec.InvokeMember( "MD5 ", BindingFlags.InvokeMethod, Nothing, Mobject, params1)

使用 params1 传递参数 : 失败
RStr= Mtypec.InvokeMember( "MD5 ", BindingFlags.InvokeMethod, Nothing, Mobject, params2)

错误提示:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Reflection.TargetParameterCountException: 指定的参数数目与所需数目不匹配。
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
在 System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
在 System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)

请问为什么会出错啊? 谢谢

[解决办法]
指定的参数数目与所需数目不匹配.

编译器回答的很清楚了

读书人网 >VB Dotnet

热点推荐