VB.NET动态加载C#或VB.NET生成的DLL文件调用动画教程[黑白智慧写](动态调用DLL).txt

 _________________下载原码:____________________________

-注意:全包括二部分,一定要下载完后,直接解压,
在解前不要修改压缩文件名,否不能正常解压!

ReadDLL-VB.NET.part2.rar 1.3MB
ReadDLL-VB.NET.part1.rar 1.9MB

下载地址:http://kevery.ys168.com

打开地址后,去到目录表,选择“kevery  kevery"目录,再选择“源码”,点击即可下载。

********************************************************


 本动画最佳显示效果分辨率:1280*1024像素


*******************************************************

关键代码:
1:所须命名空间:Imports System.Reflection
2:本例加载DLL文件对像:Dim TAA As System.Reflection.Assembly
3:用于选择DLL文件代码
        OOF.InitialDirectory = Application.StartupPath
        OOF.Filter = "DLL文件(*.dll)|*.dll|所有文件(*.*)|*.*"
        OOF.ShowDialog()
        Dim filename As String
        If OOF.FileName.Trim() = "" Then
            Return
        End If
        filename = OOF.FileName.Trim()
        TextBox1.Text = filename
4:操作动态载放DLL文件
 TAA = System.Reflection.Assembly.LoadFrom(TextBox1.Text)
        Dim t As Type = TAA.GetType("MDIC.MDICT")  '''MDIC.MDICT为,组件命名空间MDIC;而MDICT为入口类
        Dim obj As Object = t.InvokeMember(Nothing, BindingFlags.DeclaredOnly Or _
        BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or _
        BindingFlags.CreateInstance, Nothing, Nothing, Nothing)

        Dim TControl As Object

'''GetMDICPan为MDICT类中的一个方法,返回值为组件

      TControl = t.InvokeMember("GetMDICPan", BindingFlags.DeclaredOnly Or BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Instance Or _
        BindingFlags.InvokeMethod, Nothing, obj, Nothing)

        Panel1.Controls.Add(TControl)''''将DLL中的控件添加到面板Panel1中.


具体操作如下:
1.建立组件工程(命名空间为MDIC),该工程主要为面板控件.并在工程中建立入口类MDICT,且在类中建立一个方法GetMDICPan(),并返回组件.
MDIC.DLL

编译并生成DLL-------------------------------------------结果:MDIC.DLL成功

 

---------------------- 完成 ---------------------

    全部重新生成: 1 已成功, 0 已失败, 0 已跳过

 

2.建立读DLL工程:ABC
ABC.exe

编译并生成EXE--------------------------------------------结果:ABC.exe

---------------------- 完成 ---------------------

    全部重新生成: 1 已成功, 0 已失败, 0 已跳过

 


3.其它操作,请看动画..............

 


4.测试---------------------------------------------------结果:成功


..................................................................................事例完成!

 

附加:
好处是除了是可以动态添加DLL外,它还可以像引用一样,可以任意调用方法或属性,还可以定义一个对像.可以说相当于引用,区别只在于它是动态加载的.............................

        

        事例制作人:黑白智慧   [前身为:贰伍小时>>kevery]
        技术讨论群:15636854
        邮箱:kevery-net@126.com

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值