动态内存中加载DLL的问题
Private Sub RunMain(ByVal Dllpath As String, ByVal types As String)
Dim str(1) As String
Try
Dim asm As [Assembly]
'加载DLL
'这里要检测文件是否存在
Dim FS As New System.IO.FileStream(Dllpath, FileMode.Open) 'Application.StartupPath & "\jad.dll"
Dim ms As New MemoryStream
Dim data As Byte()
ReDim data(FS.Length)
FS.Read(data, 0, FS.Length)
FS.Close()
asm = System.Reflection.Assembly.Load(data)
Dim myType As System.Type = asm.GetType(types) '获得Class1的Type '"JcAppDll.ClassMain"
Dim obj As Object = Activator.CreateInstance(myType) '获得Class1的实例
' Application.Run(obj)
obj.Main()
Catch ex As Exception
Dim writer As IO.StreamWriter = New IO.StreamWriter(Application.StartupPath & "\UpdateMainLOG.log")
writer.WriteLine(Err.Number)
writer.WriteLine(Err.Description)
writer.Close()
End Try
Dim writerA As IO.StreamWriter = New IO.StreamWriter(Application.StartupPath & "\UpdateMainLOG.log")
writerA.WriteLine("Run Seccedd!")
writerA.Close()
End Sub
'///////////////////////////////////
以上代码加载是成功的
但无法在DLL调用HOOK一类的东西.
把DLL加载到内存中再Assembly.Load的这种方法使用不了HOOK,直接Load则可以.
不知有没朋友遇到过这种情况?
知道的帮帮忙