通过VB6将ASP编译封装成DLL组件最简教程 附全部工程源文件_应用技巧

1、新建DLL
打开VB6-->文件-->新建工程-->选择ActiveX DLL-->确定

2、将默认工程、类重命名
工程重命名:工程-->工程1 属性(此名称对应窗体内工程项目名称)-->在打开对话框中将“工程名称”重命名为ASP2DLL(当DLL组件在系统中注册后,在asp中默认的调用方法是“工程名.类名”)-->确定

类重命名在属性窗口中将名称重命名为Demo

3、定义ASP基本对象
添加模块:工程-->添加模块-->选择“模块”-->打开

重命名模块:工程资源管理器-->模块--Module1-->在属性窗口中将Module1重命名为“ASPMod”

添加模块代码,此段代码几乎适用于所有使用vb封装的asp DLL组件中,其中的ASP2DLL更改为工程名或者在调用时保持一致即可,代码如下:

复制代码 代码如下:

Public objContext As ObjectContext
Public Application As ASPTypeLibrary.Application
Public Server As ASPTypeLibrary.Server
Public Session As ASPTypeLibrary.Session
Public Response As ASPTypeLibrary.Response
Public Request As ASPTypeLibrary.Request
Public Sub ASP2DLL_Initialize()
On Error Resume Next
Set objContext = GetObjectContext
Set Application = objContext.Item("Application")
Set Server = objContext.Item("Server")
Set Session = objContext.Item("Session")
Set Request = objContext.Item("Request")
Set Response = objContext.Item("Response")
End Sub
Public Sub ASP2DLL_Terminate()
On Error Resume Next
Set Application = Nothing
Set Server = Nothing
Set Session = Nothing
Set Request = Nothing
Set Response = Nothing
Set objContext = Nothing
End Sub
Public Function Eval(ByRef strEval)
Dim EvalObject As New ScriptControl
EvalObject.Language = "VBScript"
Eval = EvalObject.Eval(strEval)
Set EvalObject = Nothing
End Function

4、保存新创建的DLL
文件-->保存工程,一路确定下来,将模块、类模块、工程文件全部保存在一个文件夹下
5、类模块中调用ASP对象
工程资源管理器-->类模块-->双击Demo切换到Demo类模块代码编辑器,贴上代码,初始化类调用及类销毁,代码如下:

复制代码 代码如下:

Private Sub Class_Initialize()
ASP2DLL_Initialize
End Sub
Private Sub Class_Terminate()
ASP2DLL_Terminate
End Sub

至此,一个基本的DLL框架结束,下面可以根据自己需要去完善所需封装的函数了。
6、新创建一个测试函数
在Demo类模块下贴上以下两段测试函数。

复制代码 代码如下:

Public Sub hello()
Response.Write ("Hello World!")
Exit Sub
End Sub

7、编译生成DLL
文件-->生成ASP2DLL.dll-->选择工程所在文件夹确定,ok,至此如果没有错误信息提示的话,则证明dll组件已编译成功。
8、注册、卸载组件
在ASP2DLL.dll组件所在目录创建
“注册.bat”批处理文件,输入:

复制代码 代码如下:

iisreset/stop
regsvr32/s ASP2DLL.dll
iisreset/start

“卸载.bat”批处理文件,输入:

复制代码 代码如下:

iisreset/stop
regsvr32 /u /s ASP2DLL.dll
iisreset/start

双击运行注册.bat,成功注册会提示:“ASP2DLL.dll 中的 DllRegisterServer 成功。”

9、在ASP程序中调用刚封装好的DLL组件及测试函数
步骤2中我们知道“当DLL组件在系统中注册后,在asp中默认的调用方法是‘工程名.类名'”,因此,应这样创建对象:set Obj = Server.CreateObject("工程名.类名") ,代码如下:

复制代码 代码如下:

<%
Dim ASP2DLL
Set ASP2DLL = Server.CreateObject("ASP2DLL.Demo")
ASP2DLL.hello()
Set ASP2DLL = Nothing
%>

10、包含工程文件等相关所有内容打包下载链接(20110221更新下载链接) 打包下载

在编译DLL时需要注意的几点:
1、避免使用vb保留关键字作为函数或变量名;
2、正则、部分Vbscript函数如Eval需要加载“工程-->引用-->Microsoft Script Control 1.0”及“Microsoft VBScript Regular Expressions 5.5”;
3、封装并不能带来本质上的速度提升,虚拟主机、远程服务器需有组件注册权限;
4、对已经存在的组件名称或者修改了dll文件,必须先停止IIS,再重启IIS注册dll组件;
5、VB6 SP6精简绿色版下载链接

原文来自:http://www.dlstu.cn/code/default.asp?cateID=20 感谢作者的辛勤劳动,东西太好了,就是网站访问太慢了

时间: 2024-10-02 18:07:52

通过VB6将ASP编译封装成DLL组件最简教程 附全部工程源文件_应用技巧的相关文章

用VB将ASP代码封装成DLL

封装|封装 摘 要 主要介绍用VB将ASP代码封装成DLL以保护 ASP代码和加快ASP代码的执行速度.节省服务器的资源关键词 ASP,DLL,编程一.引言Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户.多线程,在 Web开发中得到了广泛的应用.服务器端的组件有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都

asp.net分页控件使用详解【附实例下载】_实用技巧

一.说明 AspNetPager.dll这个分页控件主要用于asp.net webform网站,现将整理代码如下 二.代码 1.首先在测试页面Default.aspx页面添加引用 <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %> 2.写一个Repeater列表控件用于显示数据 <asp:Repeater ID

封装dll-C# 中如何将一个类文件 封装成.dll文件

问题描述 C# 中如何将一个类文件 封装成.dll文件 我现在在c#程序里面写了几个通用的类,里面包括数据库的操作,网页表单的基本验证以及自己平时总结的一些很好用的方法,我现在想把这些类或者某一个类封装成一个dll文件,最好是所有的类都封装成一个dll,想请问一下各位怎么做,以前没做过将类封装成dll,麻烦大家帮帮小弟,最好有代码,谢谢了! 解决方案 封装成dll不就是将它编译成dll吗? 在bin文件下就有编译的dll 解决方案二: 在VS中新建一个类库工程,把你的类文件导到新建的工程里,编译

源码封装成dll-我想把FileZilla源码里面的部分功能封装成DLL接口,提供给别的程序使用

问题描述 我想把FileZilla源码里面的部分功能封装成DLL接口,提供给别的程序使用 我有FileZilla源码,并且完全编译通过,能运行,现在想把里面的登录功能和下载功能封装成DLL接口 ,以前都没有做过这方面的,所以完全不知道该从哪里下手,求help啊!

写好的c程序如何封装成dll动态库

问题描述 写好的c程序如何封装成dll动态库 写好的c程序如何封装成dll动态库?其中此程序中已经调用了一个dll动态库.这种情况的要如何封装呢?即程序中包含普通函数和dll动态库.之前都没有做过这样的,小白菜一个,望知情人指教,最好附上详细的例子,谢谢! 解决方案 新建一个 dll 类型的项目,将程序贴进去,该使用的lib.h包括进来,在导出文件中写好函数名.即可. 你可以理解,windows api也是dll,c runtime也是dll,所以dll调用dll很正常很普遍,甚至不知不觉你早就

c++-如何将C++的大工程封装成dll或lib当做黑盒使用?

问题描述 如何将C++的大工程封装成dll或lib当做黑盒使用? 如何将C++的大工程封装成dll或lib当做黑盒使用?这个工程比较大,里面有很多自己写的头文件已经引用的dll 如何把这个工程直接封装成dll作为输入输出机似的黑盒子? 解决方案 大一点的项目比较困难尤其是有很多全局变量,这个只能靠耐心,一点一点改写.也可以不要用dll,直接用exe,靠程序启动的命令行参数调用. 解决方案二: 你可以自己做一个wrapper的DLL,它内部再调用工程的其他dll,lib库等. 这样有一个好处,模块

关于C++托管代码(.Net1.1)封装成DLL,程序调用DLL运行中断。

问题描述 因为现在需要用VS2003调用VB.net的封装的dll.经过摸索,找到办法在VS使用支持托管,写了个控制台程序测试,可以成功使用VB里面的函数.....接下来是问题重点,但是在我把它(托管代码)封装成DLL库后,用项目的程序去调用,出现0x61f43f1d未处理的异常:用户中断.然后我弄了个简单的控制台程序去测试,调用这个DLL库,运行奔溃出现FatalExecutionEngineError.而且VS2012封装的DLL不会出现这错(但是VS2012C++托管写法很大不同了),我想

如何把ASP编写成DLL组件

这篇文章主要是把ASP代码变成组件,开发者不仅是加快了ASP的速度,而且也能保护自己的代码.下面,我们会来编写一个非常简单的组件,重点是知道怎样开发DLL组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了. 服务器端组件 首先,服务器端的组件要有别于客户端的组件.客户端的组件是通过网络传输,依靠HTML来起作用.而且只能在IE上有用.但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作.因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器. 当IIS被请求执行一个ASP程序,它

将VBA代码编译封装成为DLL动态链接库的方法

  一.为什么要编译成为DLL 我们知道,Visual C++.Visual Basic和C++ Builder以及Delphi等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件.那么,我们是否可以将VBA代码封装到动态链接库文件中,然后用Word调用呢?回答是肯定的.而且这样做还有一个好处,即可以加快代码的运行速度. 二.将VBA代码封装成动态链接库 假如我们已经写好了一个VBA工程,而且运行无误. ①建立VB工程及一般性操作 首先,我们需要