精华内容
下载资源
问答
  • VB.NET 生成DLL文件 调用DLL文件

    千次阅读 2018-02-28 21:02:48
    VB.NET 生成DLL文件 调用DLL文件打开VS2013选择 类库 (1)写入一下代码Public Class Class1 Public Function world() world=“哈喽世界!” End FunctionEnd Class(2)选择 生成——生成world.DLL文件Class1...

     VB.NET 生成DLL文件 调用DLL文件

    打开VS2013选择 类库 

    (1)写入一下代码

    Public Class Class1

        Public Function world()
            world=“哈喽世界!”

        End Function

    End Class

    (2)选择 生成——生成world.DLL文件

    Class1.DLL

    (3)新建——Visual Basic——Windows—— Windows出题引用程序(新建一个FOrm1)

    (4)选择 调试——***属性——引用——添加(选择world.DLL文件

    Imports world

    Public Class Form6               

     Dim fEKEYE As New world.Class1

                    Dim fck26012018s = fEKEYE.world

                     MsgBox(fck26012018s)

    End Class

    (5)运行得到结果是弹出一个信息提示框,显示内容是“哈喽世界!”。

    (6)将world.DLL文件复制生成的EXE文件目录下即可使用。

    展开全文
  • VS2010 VB如何生成DLL文件,调用DLL 详细过程参看http://blog.csdn.net/zzuzpb/article/details/9838541
  • 谁说VB做不出标准DLL,这个能帮你用来生成标准DLL文件。。。
  • 具体分析如下:Visual C#生成DLL文件VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受管代码虽然也是二进制...

    https://www.xin3721.com/eschool/python.html

    本文实例讲述了C#生成DLL文件的方法。分享给大家供大家参考。具体分析如下:

    Visual C#生成DLL文件

    VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实质上是一种中间语言(IL)代码,需要经过"下一代窗口服务"( Next Generation Windows Services,简写为NGWS ) runtime的即时编译器(即JIT)进行编译。

    用Visual C#生成的DLL文件已经和以前的DLL文件有了本质上的区别。用Visual C#生成的DLL文件在程序设计中更多的表现为一种类(Class)或者类库(Class Library)。

    制作一个组件

    1.首先创建一个新类库工程文件

    File->New->Project->Visual C# Projects->Class Library。填入工程文件名称,并且选择文件要存放的目录。

    2.工程文件

    将Class1.cs改名自己要创建的文件名:myDll.cs,并填入代码。

    3.生成DLL文件

    编译工程文件:csc /target:library /out:myDll.DLL myDll.cs生成组件myDll.dll,该组件会在工程文件的bin\debug目录里,文件扩展名是dll。

    测试DLL

    1.新建一个控制应用程序

    File->New->Project->Visual C# Projects->Console Application。通过这个控制应用程序来测试我们的组件。  2. 为Namespace添加引用

    Project->Add reference,浏览到刚才生成的DLL,然后按OK。即将引用加到当前的工程文件的类里。

    3.调用myDll命名空间,创建myDll对象,并且调用它的方法和属性

    (1)使用namespace:using myDll;

    (2)创建myDll对象;

    (3)调用方法和属性。

    DLL内容:

    ?

    使用方法:

    ?

    希望本文所述对大家的C#程序设计有所帮助。

    展开全文
  • VB DLL生成

    2011-11-02 19:05:40
    文件中包含了扩展工具以及用VB生成DLL文件的用法!
  • 这篇文章以VB生成DLL封装ASP代码来连接数据库(以Access数据库为例)。 一般情况下我们在用ASP连接Access的数据库时通常都会进行如下的操作 ‘//Proconn.asp <% dim ProConn set ProConn=Server....
  • VB生成DLL封装ASP代码一个例子:连接access数据库等 封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库的实际路径。 VB生成的...
    用VB生成DLL封装ASP代码一个例子:连接access数据库等

    封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库的实际路径。


    VB生成的DLL封装ASP代码来连接数据库(Access)。

    本文用一个最简单的连接access数据库的例子来说明如何将asp代码封装为dll文件。

    我们用vb,最常见的方式来封装asp代码。

    我们需要封装的对象如下:

     

    'Proconn.asp
    dim ProConn
    set ProConn=Server.CreateObject("ADODB.CONNECTION")
    ProConn.Open "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ=" & Server.MapPath("DB.asp")

    我们将下面的部分封装
    "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ=" & Server.MapPath("DB.asp")

    分析一下这段要封装的内容,
    它的前半部分就是一个字符串:
    "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ="
    用&连接上后半部分的另一个字符串。
    后半部分的另一个字符串是Server.MapPath对象函数的返回值。


    下面开始这个封装的操作过程。
    首先
    新建一个VB下的ActiveX DLL工程,工程的名称Project1更改成ConDBDLL
    方法class1的名称更改成cs
    工程名和方法名会在调用这个DLL的时候使用到,大家可以按照自己命名规则定义,但请注意好好使用。
    这个DLL的代码部分书写如下:

    Dim rp As Response
    Dim rq As Request
    Dim ap As Application
    Dim sr As Server
    Dim sn As Session

    Public Sub OnStartPage(MyScriptingContext As ScriptingContext)
    Set rp = MyScriptingContext.Response
    Set rq = MyScriptingContext.Request
    Set sr = MyScriptingContext.Server
    Set ap = MyScriptingContext.Application
    Set sn = MyScriptingContext.Session
    End Sub

    Public Sub OnEndPage()
    Set rp = Nothing
    Set rq = Nothing
    Set sr = Nothing
    Set ap = Nothing
    Set sn = Nothing
    End Sub
    '以上语句是必须的,将原本的对象作了简化处理,并在两个基本函数中作了处理

    Public Function ConnectDB() As Variant

    ConnectDB = "driver={Microsoft Access Driver (*.mdb)};uid=;pwd=123;DBQ="

    End Function
    '上面这个函数是处理前半部分字符串的,直接返回这个字符串的内容

    '另外定义下面这个函数来处理后半部分内容
    Public Function DBPath() As Variant
    DBPath = sr.MapPath("DB.asp")
    End Function
    '注意上面使用的是sr,不要使用成Server了

    到了关键的一步,给这个工程添加"Microsoft Active Server Pages ObjectContext Object Library" 的 Reference
    添加方法,选择菜单中的"Project"->"Reference",在打开的对话框里选择。
    对了,还要选择上"microsoft activeX data objects 2.6 library"

    进行完以上操作,我们就可以编译生成DLL了,(别忘了前面的改工程名和方法名)

    准备好数据库文件DB.asp (由DB.mdb更改后缀而成,密码123)

    下面就是调用封装的连接数据库的asp文件代码:

     

    由于是自己创建的DLL,把它拷贝到相应的目录后,必须注册才能使用。
    注册的方法,在“运行”中执行:
    Regsvr32.exe dllname.dll

    取消这个DLL的注册的方法是:Regsvr32.exe /u dllname.dll

    注册完毕,我们的工作基本上就做完了,现在我们可以使用这样的封装方法连接具有针对性的数据库了。

    不过有一点需要特别注意的是:
    由于
    Dim ConDB
    set ConDB=Server.CreateObject("ConDBDLL.Conn")
    'ConDB就是创建的DLL对象
    这是在ASP中创建的对象,包括ProConn,那么我们在任何使用到(引用)ProConn.asp的其他ASP文件中记得释放这两个对象!
    ProConn.close
    set ProConn=nothing
    set ConDB=Nothing
    否则系统会由于对象没有释放,而变得越来越不堪重负。

    关于这个封装ASP代码连接Access数据库的方法,我想完全适用其他数据库的连接方法。



    再例如,下面的封装的例子:

    首先要申明变量:

    Private WenScriptingContext    As ScriptingContext

    Private WenApplication    As Application

    Private WenRequest    As Request

    Private WenResponse    As Response

    Private WenServer    As Server

    Private WenSession    As Session

    为了在WenConnection类中使用ASP的内建对象,必须在此类中写一个OnStartPage子函数。那是因为无论什么时候用户访问一个带有本组件的ASP文件,IIS就会把ScriptingContext传送给我们的对象请我们使用。这个ScriptingContext包括了全部的ASP方法和属性,这使得我们有能力访问所有ASP的对象。

    Public Sub OnStartPage (PassedScriptingContext As ScriptingContext)

    Set WenScriptingContext = PassedScriptingContext

    Set WenApplication = WenScriptingContext.Application

    Set WenRequest = WenScriptingContext.Request

    Set WenResponse = WenScriptingContext.Response

    Set WenServer = WenScriptingContext.Server

    Set WenSession = WenScriptingContext.Session

    End Sub

    我们既然用OnStartPage函数来创建对象,那么我们这里就用OnEndPage子函数来释放对象:

    Public Sub OnEndPage()

    Set WenScriptingContext = Nothing

    Set WenApplication = Nothing

    Set WenRequest = Nothing

    Set WenResponse = Nothing

    Set WenServer = Nothing

    Set WenSession = Nothing

    End Sub

    接下来定义两个函数RsResult()和DataSource():

    Public Function Rs(strsql As String) As Recordset

    Dim oConn    As Connection

    Dim oRs    As Recordset

    Dim strconnstring    As String

    strconnstring = "driver={sql server};server=ServerName;uid=sa;pwd=;" & _

               "database=DataBaseName"

    oConn.Open strconnstring

    oRs.ActiveConnection = oConn

    strsql="Select * From tableName"

    oRs.Open strsql, oConn, 1, 3

    Set Rs = oRs

    End Function

     

    Public Function DataSourceConnection() As Variant

    DataSourceConnection = "driver={sql server};server=ServerName;uid=sa;pwd=;database=DataBaseName"

    End Function

    三、 存工程名为WenADODB.vbp和保存类名为WenConnection.cls,然后点击“文件”—>“生成WenADODB.DLL”编译成动态连接库文件。VB在编译好动态连接库文件的同时也将该组件注册到注册表里了,要是想在另外一台机器上注册该组件的话,请用以下指令注册或反注册:

    Regsvr32 x:\路径\WenADODB.dll          x:\路径\为WenADODB.dll文件存放的盘符和路径

    Regsvr32 /u x:\路径\WenADODB.dll        参数U为反注册

    四、 在ASP文件中调用WenADODB.dll组件的例子。

    <%

    Set Conn=Server.CreateObject("WenADODB.WenConnection") ‘调用组件创建对象实例

       objConn=Conn.DataSourceConnection()

       application("strconn")=objConn

     

    set Rs=Server.CreateObject("ADODB.Recordset")

       sql="select * from TableName order by ID DESC"

       Rs.open sql,application("strconn"),1,3

    %>

    <Table align="center" border="1">

    <%   

    if Rs.Bof and Rs.Eof then

       Response.Write "暂时还没有任何数据。"

    else

    Do while not Rs.Eof   

    %>

    <tr width=100%>

       <td width=50%><%=Rs("Field1")%></td><td width=50%><%=Rs("Field2")%></td>

    </tr>

    <%

    Rs.MoveNext

    Loop

    end if

    Rs.Close;Set Rs=Nothing

    %>

    </Table>

    五、 小结

    我们这里只是编写了一个连接数据库的简单的动态连接库文件,利用VB的强大组件编写功能还可以写出功能更加强大跟齐全的组件,来完成更加实用的任务

     

    关键字    如何把ASP编写成DLL


    这篇文章主要是把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.
    下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了.

    服务器端组件

    首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器.

    当IIS被请求执行一个ASP程序,它首先会在ASP文件中找到〈%%>标签之间的代码,并且执行它(也可以是〈scriptrunat=server>〈/script>之间的代码).如果这个ASP程序在先前被调用过,那么它就会用内存中的编译过的程序来向用户返回HTML代码,如果没有,那么它就重新编译.这里ASP就比CGI多一点速度优势,因为CGI是每一个请求都使用一个线程.这样就大大消耗了服务器的资源.

    想不想你写的程序自己就能在IIS运行!?!现在你就行了!使用VB5(当然现在是VB6了),你就能建立DynamicLinkedLibraries(DLL文件),它能在IIS上直接运行(如果有asp文件来请求的话).

    系统和软件的要求

    你需要一个32位的操作系统来运行ASP.当然你也得安装IIS或PWS.我们下面的程序是在windows95+PWS+VB5的环境下开发的.

    我们开始吧

    启动你的VB,选择ActiveX图标.这个图标可以在新建工程找到!VB会提供一个默认的工程名(project1)和类名(class1).我们会将这两个名字都改掉.在改名之前,请首先确认我们拥有MicrosoftActiveServerPagesObjectLibrary,它在我们的程序非常有用.从菜单中选择"工程",然后在其中选择"引用",就会出现"引用"窗口
    从中选择MicrosoftActiveServerPagesObjectLibrary.

    给工程和类命名

    现在我们来根据自己的爱好来为project1和class1来命名吧!给它们命名也是很重要的,我们以后会用这个工程名和类名来创建这个组件的实例!后面详细介绍.

    如何改名,我就不想多说了!
    我们的工程名改为Exmaple,类名为Helloword

    怎样使用工程和类

    现在我们有了我们自己的工程(Example1)和类名(HelloWorld).以后我们就会在ASP代码中使用它们的名字来引用这个组件.在ASP中我们就这样引用,如下:

    SetObjReference=Server.CreateObject("ProjectName.ClassName")

    对于我们工程的引用就是:
    SetObjReference=Server.CreateObject("Example1.HelloWorld")
    现在我们就能用ObjReference来调用我们在组件中所创建的函数,子程序.下面我们会来写一个SayHello的子程序,我们执行它的代码如下:


    〈%
    SetObjReference=Server.CreateObject("Example1.HelloWorld")
    ObjReference.SayHello
    %>


    为了在Helloword类中使用ASP的方法,你必须在此类中写一个OnStartPage
    子函数.如下:


    PublicSubOnStartPage(PassedScriptingContextAsScriptingContext)
    SetMyScriptingContext=PassedScriptingContext
    EndSub

     

    现在,无论什么时候用户访问一个带有本组件的ASP文件,IIS就会把ScriptingContext传送给我们的对象请我们使用.这个ScriptingContext包括了全部的ASP方法和属性.实现上,这使得我们有能力访问所有ASP的对象.看下面的代码:


    PublicSubOnStartPage(PassedScriptingContextAsScriptingContext)
    SetMyScriptingContext=PassedScriptingContext
    SetMyApplication=MyScriptingContext.Application
    SetMyRequest=MyScriptingContext.Request
    SetMyResponse=MyScriptingContext.Response
    SetMyServer=MyScriptingContext.Server
    SetMySession=MyScriptingContext.Session
    EndSub


    以后我们就能用在VB中用MyApplication来代替ASP中的Application,同理可以代替Request,Server.....,不过我们来是要在OnStartPage之前来申明这些变量:


    PrivateMyScriptingContextAsScriptingContext
    PrivateMyApplicationAsApplication
    PrivateMyRequestAsRequest
    PrivateMyResponseAsResponse
    PrivateMyServerAsServer
    PrivateMySessionAsSession

     

    使用ASP的对象

    我们的变量现在就能像标准的ASP对象来使用了!比如,我们经常在ASP中用Request.form()来收集提交表单的数据.现在我们在我们的VB中实现这个功能,代码如下:

    用ASP中实现:
    〈%
    MyTempVariable=Request.Form("userName")
    Response.Write("youentered"&MyTempVariable&"asyourusername")
    %>


    在VB中实现:


    MyTempVariable=MyRequest.Form("userName")
    MyResponse.Write("youentered"&MyTempVariable&"asyourusername")

     

    通过使用MyResponse来代替Response,我们能够使用所有Response的方法,当然,MyResponse这个名字可以随便来取,你甚至可以就取Response.
    另一件我们得注意的是,我们得在我们的建立的类中,写上OnEndPage子函数,这个OnStartPage是相反的!OnStartPage是创建对象,OnEndPage是消毁对象.

     

    PublicSubOnEndPage()
    SetMyScriptingContext=Nothing
    SetMyApplication=Nothing
    SetMyRequest=Nothing
    SetMyResponse=Nothing
    SetMyServer=Nothing
    SetMySession=Nothing
    EndSub

     

    SayHello方法

    我们来建立一个子函数,用于显示"HolleWorld".这个SayHello方法只是HelloWorld这个类中一个子函数,我们以后会在ASP中用以下的显示这个方法


    〈%
    SetObjReference=Server.CreateObject("Example1.HelloWorld")
    ObjReference.SayHello
    %>

     

    SayHello的程序,很简单的!

    PublicSubSayHello()
    MyResponse.Write("HelloWorld")
    EndSub

     

    现在一个小型的组件编写完成,剩下的工作就是编译这个组件,在"工程"菜单中保存它,取什么名字都可以,我们用Exmaple1.vbp吧!然后就用在菜单中选择"makeexmaple1.dll",将其编译成DLL文件.一个组件就真正完成了!


    注意,编译了此组件那么你就得先把你的PWS关掉,然后再编译此组件.否则VB就会告诉你些组件在使用中.

    在ASP中使用我们的自己的组件.

    当你更正了在编译中的错误,成功地编译了example1这个工程,现在你就得拿出你最喜欢的HTML编辑器来写下下面的语句,保存为ASP文件.


    〈HTML>
    〈HEAD>
    〈TITLE>Example1〈/TITLE>
    〈/HEAD>

    〈BODY>

    〈%
    SetObjReference=Server.CreateObject("Example1.HelloWorld")
    ObjReference.SayHello
    %>

    〈/BODY>
    〈/HTML>

    运行后即可看到结果:

    HelloWorld

    注册组件

    如果你想和你的朋友,邻居分享你的组件,那么你就得在你的系统上注册你的组件.我们一般使用Regsvr32.exe来注册组件.注册后你的组件会出现在Win95/Win98的windows/system目录中.下面是一个注册的例子:

    Regsvr32.exeC:/wwwroot/Example1/Example1.dll


    在你的系统中,VB会自动给你注册,所以你很少用到Regsvr32.exe

    这里只是写了一个非常小的组件,你可以写好自己的更大的组件,而且还可以用VB中的很多控件.

    附录:建立注册DLL和反注册DLL文件的快捷方式
    有的程序员经常要注册或者反注册自己写的dll文件,加一个快捷方式会减少自己的工作量:

    Windows Registry Editor Version 5.00


    [HKEY_CLASSES_ROOT\dllfile\shell]


    [HKEY_CLASSES_ROOT\dllfile\shell\register]


    [HKEY_CLASSES_ROOT\dllfile\shell\register\command]

    @="regsvr32 %1"


    [HKEY_CLASSES_ROOT\dllfile\shell\Unregister]

    "Command"="regsvr32 %1 /u"


    [HKEY_CLASSES_ROOT\dllfile\shell\Unregister\command]

    @="regsvr32 %1 /u"

    当我们需要注册或者反注册dll时,只要在该dll文件上按下鼠标右键即可!

     

    附录注册和注销dll文件的方法:
    一个快速注册 DLL 及 OCX 的方法
    有时候我们在 VB 中要引用某一个 DLL 或 OCX 时,会出现文件未注册的讯息,这时,我们可以使用人工注册的方法,也就是直接在命令列中使用 regsvr32.exe 来做,做法如下:

    文件注册:C:\Windows\System\Regsvr32.exe C:\Windows\System\Test.ocx
    取消注册:C:\Windows\System\Regsvr32.exe /u C:\Windows\System\Test.ocx

    这些动作我们也可以直接写到程序中,使用 Shell 来执行,但是我现在要说的,都不是上面提到的方法!

     

    1、在资源管理器中找到 C:\Windows\System\Regsvr32.exe 并【复制】 ( 按鼠标右键选复制 )
    2、将目录移到 C:\Windows\SendTo 后,执行【贴上快捷方式】 ( 按鼠标右键选贴上快捷方式 )
    3、将快捷方式名称改成【REGISTER】
    4、OK

    现在,如果您想替某一个文件做注册动作,例如:C:\Windows\System\Test.ocx,您只要打开资源管理器,找到 C:\Windows\System\Test.ocx,按鼠标右键选【传送到】【REGISTER】即可完成注册动作了!

    注:有一个地方要注意的是,Regsvr32.exe 只能注册 32 位的文件!如果要用它来注册 16 位的文件,会有错误讯息产生。


    附录 某些dll文件的功能:
    一、轻松修复IE浏览器

      很多经常上网的朋友都有过 这样的遭遇:IE不能打开新的窗口,用鼠标点击超链接也没有任何反应。这时重装IE一般能解决问题。其实不必这么麻烦,使用Regsvr32命令就可以轻松搞定。

      在“开始→运行”中键入“regsvr32 actxprxy.dll”命令,点击“确定”按钮,这时会弹出一个信息对话框“DllRegisterServer in actxprxy.dll succeeded”,点击“确定”;然后再在“开始→运行”中键入“regsvr32 shdocvw.dll”命令,单击“确定”即可。重新启动后IE已经被轻松修复了。

    二、解决Windows无法在线升级的问题

      Windows的漏洞很多,每隔一段时间就需要使用“Windows Update”升级程序进行在线升级,不过“Windows Update”经常出现无法使用的情况,这时,我们可以使用Regsvr32来解决这个问题。

      在“开始→运行”中键入“regsvr32 wupdinfo.dll”,点击“确定”按钮,这样在系统中就重新注册了“Windows Update”组件,重新启动后问题已经解决。

    三、防范网络脚本病毒有新招

      网络脚本病毒嵌在网页中,上网时在不知不觉中机器就会感染上这种病毒。笔者认为单纯使用杀毒软件并不能有效地防范这些脚本病毒,必须从病毒传播的机理入手。网络脚本病毒的复制、传播都离不开FSO对象(File System Object,文件系统对象),因此禁用FSO对象就能有效地控制脚本病毒的传播。操作方法很简单:

      在“开始→运行”中键入“regsvr32 /u scrrun.dll”就可以禁用FSO对象;如果需要使用FSO对象,键入“regsvr32 scrrun.dll”命令即可。

    四、卸载Win XP自带的“鸡肋”功能

      Win XP以功能强大而著称,但有些功能却常常令人有“鸡肋”之感,比如Win XP自带的ZIP功能和图片预览功能,不仅占用了系统资源,功能也远不如第三方软件强大。其实用Regsvr32命令可以很容易地卸载这些功能。

      在“开始→运行”中键入“regsvr32 /u zipfldr.dll”,单击“确定”按钮,弹出卸载成功信息框后就完成了ZIP功能的卸载;要恢复ZIP功能,键入“regsvr32 zipfldr.dll”即可。同样,卸载图片预览功能也很简单,在“开始→运行”中键入“regsvr32 /u thumbvw.dll”即可;如果要恢复该功能,只须键入“regsvr32 thumbvw.dll”。

    五、让WMP播放器支持RM格式

      很多朋友喜欢用Windows Media Player(以下简称WMP)播放器,但是它不支持RM格式,难道非得安装其它播放软件吗?笔者有办法。

      以Win XP为例,首先下载一个RM格式插件,解压缩后得到两个文件夹: Release(用于Windows 9x)和Release Unicode (用于Windows 2000/XP);将Release Unicode文件夹下的RealMediaSplitter.ax文件拷贝到“系统盘符\WINDOWS\System32\”目录下;在“开始→运行”中键入“regsvr32 RealMediaSplitter.ax”,点击“确定”即可。接着下载解码器,如Real Alternative,安装后就能用WMP播放RM格式的影音文件了。

    附录:注册和反注册dll文件的批处理

     

    dll.bat
    ------------------------------
    @Regsvr32.exe AdminDLL.dll


    un.bat
    -------------------------------------
    @Regsvr32.exe /u AdminDLL.dll

    转载于:https://www.cnblogs.com/chenbg2001/archive/2009/02/03/1383128.html

    展开全文
  • C#生成DLL文件的方法

    2021-01-20 06:10:03
    本文实例讲述了C#生成DLL文件的方法。分享给大家供大家参考。具体分析如下: Visual C#生成DLL文件 VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的...
  • VB6.0生成DLL文件制作成安装包和自动注册使用 本文是针对Excel VB6.0生成DLL文件,使用第三方制作成安装文件,在用户电脑上进行安装注册,然后打Excel软件就可以使用DLL文件的功能,不用手动注册
  • 关于VB生成标准DLL文件

    千次阅读 2006-09-19 13:31:00
    工程NewLinker.vbp模块文件NewLinker.basOption ExplicitPublic Sub Main() Dim SpecialLink As Boolean, fCPL As Boolean, fResource As Boolean Dim intPos As Integer Dim strCmd As String Dim strPath

    工程NewLinker.vbp

    模块文件NewLinker.bas

    Option Explicit

    Public Sub Main()
       Dim SpecialLink As Boolean, fCPL As Boolean, fResource As Boolean
       Dim intPos As Integer
       Dim strCmd As String
       Dim strPath As String
       Dim strFileContents As String
       Dim strDefFile As String, strResFile As String
       Dim oFS As New Scripting.FileSystemObject
       Dim fld As Folder
       Dim fil As File
       Dim ts As TextStream, tsDef As TextStream

       strCmd = Command
      
       Set ts = oFS.CreateTextFile(App.Path & "/lnklog.txt")
      
       ts.WriteLine "Beginning execution at " & Date & " " & Time()
       ts.WriteBlankLines 1
       ts.WriteLine "Command line arguments to LINK call:"
       ts.WriteBlankLines 1
       ts.WriteLine "   " & strCmd
       ts.WriteBlankLines 2
      
       ' Determine if .DEF file exists
       '
       ' Extract path from first .obj argument
       intPos = InStr(1, strCmd, ".OBJ", vbTextCompare)
       strPath = Mid(strCmd, 2, intPos + 2)
       intPos = InStrRev(strPath, "/")
       strPath = Left(strPath, intPos - 1)
       ' Open folder
       Set fld = oFS.GetFolder(strPath)
      
       ' Get files in folder
       For Each fil In fld.Files
          If UCase(oFS.GetExtensionName(fil)) = "DEF" Then
             strDefFile = fil
             SpecialLink = True
          End If
          If UCase(oFS.GetExtensionName(fil)) = "RES" Then
             strResFile = fil
             fResource = True
          End If
          If SpecialLink And fResource Then Exit For
       Next
         
       ' Change command line arguments if flag set
       If SpecialLink Then
          ' Determine contents of .DEF file
          Set tsDef = oFS.OpenTextFile(strDefFile)
          strFileContents = tsDef.ReadAll
          If InStr(1, strFileContents, "CplApplet", vbTextCompare) > 0 Then
             fCPL = True
          End If
         
          ' Add module definition before /DLL switch
          intPos = InStr(1, strCmd, "/DLL", vbTextCompare)
          If intPos > 0 Then
             strCmd = Left(strCmd, intPos - 1) & _
                   " /DEF:" & Chr(34) & strDefFile & Chr(34) & " " & _
                   Mid(strCmd, intPos)
          End If
          ' Include .RES file if one exists
          If fResource Then
             intPos = InStr(1, strCmd, "/ENTRY", vbTextCompare)
             strCmd = Left(strCmd, intPos - 1) & Chr(34) & strResFile & _
                      Chr(34) & " " & Mid(strCmd, intPos)
          End If
         
          ' If Control Panel applet, change "DLL" extension to "CPL"
          If fCPL Then
             strCmd = Replace(strCmd, ".dll", ".cpl", 1, , vbTextCompare)
          End If
         
          ' Write linker options to output file
          ts.WriteLine "Command line arguments after modification:"
          ts.WriteBlankLines 1
          ts.WriteLine "   " & strCmd
          ts.WriteBlankLines 2
       End If
      
       ts.WriteLine "Calling LINK.EXE linker"
       Shell "linklnk.exe " & strCmd
       If Err.Number <> 0 Then
          ts.WriteLine "Error in calling linker..."
          Err.Clear
       End If
      
       ts.WriteBlankLines 1
       ts.WriteLine "Returned from linker call"
       ts.Close
    End Sub

    以上生成NewLinker.exe 替代VB中的link.exe

    -------------------------------------------------------------------------

    DLL模块文件,类模块文件

    Option Explicit

    Public Const DLL_PROCESS_DETACH = 0
    Public Const DLL_PROCESS_ATTACH = 1
    Public Const DLL_THREAD_ATTACH = 2
    Public Const DLL_THREAD_DETACH = 3

    Public Function DllMain(hInst As Long, fdwReason As Long, lpvReserved As Long) As Boolean
       Select Case fdwReason
          Case DLL_PROCESS_DETACH
             ' No per-process cleanup needed
          Case DLL_PROCESS_ATTACH
             DllMain = True
          Case DLL_THREAD_ATTACH
             ' No per-thread initialization needed
          Case DLL_THREAD_DETACH
             ' No per-thread cleanup needed
       End Select
    End Function

    ' Return a Fibonacci number.
    Public Function Fibo(ByVal N As Integer) As Long
        If N <= 1 Then
            Fibo = 1
        Else
            Fibo = Fibo(N - 1) + Fibo(N - 2)
        End If
    End Function

    -------------------------------------------------------------------------------

    Fibonacci.def文件

    NAME MathLib
    LIBRARY MathMod
    DESCRIPTION "Add-on Library of Mathematical Routines"
    EXPORTS DllMain @1
                       Fibo @2

    --------------------------------------------------------------------------------

    如果觉得麻烦,还是用PowerBasic,它支持VB语法,函数都是Win32API,无需声明

    能够生成象VC一样的标准DLL,不依赖MSVBVM60.Dll

     

     

    展开全文
  • 使用vb程序编写的自动注册dll文件,代码自动生成需要注册dll部件的bat批处理文件,然后自动运行,注册dll部件,同时后台影藏注册,不会弹出Regsvr32成功提示框,有效的解决win10不能注册dll问题。核心代码可直接应用...
  • VB .bas文件生成dll并且调用

    千次阅读 2015-07-20 09:18:32
    Dll生成
  • VB生成DLL封装ASP代码一个例子:连接access数据库等封装为dll会带来很多的好处,主要包括只是产权的保护,以及效率和安全性能的提升。这个例子中被封装的dll文件可以隐藏access数据库的实际路径。VB生成的DLL封装...
  • 使用VB将ASP代码封装生成DLL文件2007-05-24 08:00作者:出处:天极Yesky责任编辑:罗可龙转载:http://homepage.yesky.com/147/3155147.shtml一、引言 Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本...
  • VB函数DLL生成

    2012-03-09 20:39:03
    VB函数DLL生成器,需要OBJ文件,只能输出1个函数
  • vb6不能处理32位的图片,这个是解决办法。代码演示了如何从dll文件中读取32位图标,并如何生成自定义资源文件(与vb6资源不同)。来源于网络。
  • 怎么能让这个程序生成dll文件,让vb.net调用,或者vb.net用其他方法调用这个程序。最终想打包整一个软件发布?有没有比较好的方法?求大神指教?打包成安装程序也请各大神指教指教~谢谢谢......
  • 如何用VB制作DLL文件

    2012-05-08 21:52:42
    1.新建一个ActiveX Dll,工程名字为vbmytestdll,类模块名字为mytestdll 2.类模块内容只有一个函数,主要返回DLL的HELLO WORLD Public Function dlltest1() ...保存,生成DLL,名字为 vbmytestdll.dll 4.新建一个EXE...
  • C#生成DLL文件

    2011-09-27 09:23:59
    VisualC、Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件。但用Visual C#编译器生成的受管代码虽然也是二进制文件,但不是可以直接供计算机使用的...
  • VB.net中编译生成和调用dll文件的方法
  • 在vc中调用vbdll文件

    千次阅读 2010-08-01 23:35:00
     假设用vb编写了一个ActiveX 组件,名称为BioxSend,里面生成一个类Test,类里面有一个方法Hello(),并且已经在电脑上注册,下面分别描述怎样在VB和vc中调用。 1. VB调用 (1) 方法1:直接在project...
  • 要求: VC6中函数 char* _stdcall getsetchar(char *ip,int port){ if(port == 1115){ ...求大神给出VC6全代码 以及生成dllVB6中调用的代码:就一个函数我只是想看参数是怎么传递的... 要过程 完整的过程...
  • 我在使用VB生成COM的DLL时,只得到DLL和LIB文件,请问咋生成TLB文件.
  • 平台VS2008 新建-类库 ...完成代码(如添加函数,过程等等)后点生成->即可生成dll文件 Public Class gps  '定义由管径和流量确定流速  Public Function speed(ByVal qq As Single, ByVal aa As
  • 使用http://VB.NET封装VBA自定义函数生成tlb文件可以使用vb封装为dll文件,但是不支持64位,本文章采用vs2017进行封装tlb文件,可供vba或者vb调用。介绍封装步骤前,我先介绍一下封装环境:① Windows 10 专业版;②...
  • 目前做了个小程序,在html文件中调用c#类库生成的... 先将类库添加强名,生成dll文件之后,就可生成tlb类型库。(dll和tlb文件可移动到任何目录中) 1.使用Windows命令窗口(若客户机没有vs2005,就无法使用Visual Stu
  • 生成VB调用的DLL

    2019-08-05 20:05:19
    tlb文件:com类型库文件,它包含接口相关信息。... dll: 动态连接库,它包含...1.生成TLB文件 选择项目->右键属性->生成->输出->勾选 “为COM互操作注册” 即可生成.tlb文件 去掉勾选 “为COM互操作注册...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 486
精华内容 194
关键字:

vb生成dll文件