您的位置:程序门 -> .net技术 -> vb.net



vb.net 动态加载dll


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


vb.net 动态加载dll
发表于:2007-02-26 20:32:25 楼主
在vb.net如何动态加载dll?
启动时从ini文件中读dll的路径
然后加载进来。

我想知道如何用
dll中的方法和它的构造体。。。
大家有没有什么实例啊。
救命啊,谢谢。
发表于:2007-02-27 08:32:001楼 得分:0
反射
msdn
发表于:2007-02-27 09:39:542楼 得分:0

你看看   http://blog.csdn.net/kevery_net/archive/2006/09/29/1306540.aspx
里面还有例子和程序。可能会有用

以下为引用部分:

关键代码:
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成功

发表于:2007-02-27 09:47:473楼 得分:0
帮你查了一下代码,,不过是c#的,,
public       static       object       runmethod(string       classname,string       methodname,object[]       parameters)      
    {      
    type       t       =       type.gettype(classname,true,true);      
                    t       =       assembly.getassembly(t).gettype(classname);      
    methodinfo       m       =       t.getmethod(methodname);      
    object       obj       =       activator.createinstance(t);      
    return       m.invoke(obj,parameters);      
    }
发表于:2007-02-27 10:55:214楼 得分:0
反射就可以了
或者用现成的框架castle,用ioc去实现
发表于:2007-03-20 10:12:255楼 得分:0
用短信猫做短信平台,比较稳定,不受网络安全影响,响应及时,适合一些重要的安全性高的业务需求,但是发送速度有限制,一般是800条/小时
sp短信通道发送速度快,但是由于接入的开发商很多,在服务器不多的情况下,必然会排队,有时繁忙时提交一条短信,第二天才能收到,而且网络不正常时,也会影响使用
建议一些管理软件用短信猫做短信平台
1.方寸gsm-modem   短信平台

gsm-modem   短信平台,无需联网,只需一台电脑,一个短信猫(或手机),一个短信开发接口,就可轻松建立短信服务器,可实现短信收发,短信互动等功能,一台电脑可以连接多个短信猫硬件,从而提高吞吐量。

2.方寸短信数据库接口(手机短信接口,短信二次开发控件)

通过本数据库接口,能使你现有的系统(如oa、crm、erp等系统)轻松实现无线办公功能,无论你用的是哪种开发语言(vb\vc\vfp\asp\jsp\java\pb\delphi...),只要你的系统能读写数据库即可对接!你仅需要在指定的表中添加记录,本接口程序就自动进行发送短信了,收到的短信会自动保存到数据库里,所以,您不需要了解任何有关数据通信方面的知识,就可实现手机短信的收发等功能!  
电话:0755-25996144
联系人:陈先生
网址:http://www.fcwww.com
qq:393376247


快速检索

最新资讯
热门点击