当前位置:编程学习 > C#/ASP.NET >>

问题:动态加载嵌入资源(DLL)

动态加载嵌入资源(DLL)

http://www.lijialong.name/loaddll.html

这个代码我转成VB代码结果过不去

Return m.Invoke(_object, ObjArray_Parameter)

这一句提示:类型“System.Int32”的对象无法转换为类型“System.Byte”

请教该如何解决呢?

代码如下:

  Public Function InvokeMethod(ByVal lpFileName As String, ByVal myNameSpace As String, ByVal className As String, _
  ByVal lpProcName As String, ByVal ObjArray_Parameter() As Object) As Object
  'Try
  Dim assembly As Assembly = assembly.Load(LoadDll(lpFileName)) '加载指定的DLL程序集
  Dim type() As Type = assembly.GetTypes()
  Dim t As Type
  For Each t In type
  If t.Name = className Then
  If t.Namespace = myNameSpace Then
  Dim m As MethodInfo = t.GetMethod(lpProcName) '加载需要调用的方法
  If m IsNot Nothing Then
  Dim _object As Object = Activator.CreateInstance(t)
  Return m.Invoke(_object, ObjArray_Parameter) '调用指定的方法,并返回结果(如果有)
  Else
  System.Windows.Forms.MessageBox.Show("方法:" + lpProcName + " 不存在!")
  End If
  'Else
  ' System.Windows.Forms.MessageBox.Show("命名空间:" + myNameSpace + ",类:" + className + " 不存在!")
  End If
  End If
  Next
  System.Windows.Forms.MessageBox.Show("命名空间:" + myNameSpace + ",类:" + className + " 不存在!")
  'Catch e As Exception
  ' MessageBox.Show(e.Message)
  'End Try
  Return Nothing
  End Function
  Private Function LoadDll(ByVal lpFileName As String) As Byte()
  Dim assembly As Assembly = assembly.GetExecutingAssembly()
  Try
  Dim stream As Stream = assembly.GetManifestResourceStream(assembly.GetName().Name + "." + lpFileName)
  Dim buffer(stream.Length - 1) As Byte
  stream.Read(buffer, 0, buffer.Length)
  stream.Close()
  Return buffer
  Catch e As Exception
  MessageBox.Show(e.Message)
  End Try
  Return Nothing
  End Function --------------------编程问答-------------------- 找到原因了,是数据类型不匹配,哈哈,结贴 --------------------编程问答-------------------- 看样只能曾分了。
win32好象有专门的资源DLL。 --------------------编程问答-------------------- 嗯,看错误就知道是类型不匹配的。
楼主可以看看别的资料,有专门的对应的资料的。
C++,C#,VB.net,同样的东西,类型分别是什么 --------------------编程问答-------------------- 调用DLL数据类型要注意,常在这反面出错
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,