当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用VB将ASP代码封装成DLL

ASP
在ASP中使用SQL语句之10:视图
在ASP中使用SQL语句之11:记录统计
VBS、ASP代码语法加亮显示的类(2)
asp作品保护方案
使用NextRecordset通过一个Connection输出多个select查询
超长字符的智能分页-支持HTML
远程获取内容,并将内容存在本地电脑上,包括任何文件
把文件存进access数据库然后取出来供人下载的代码
一个分页存储过程
在asp文件中访问flash详细信息
关于生成目录树结构的类
用自定义函数获取汉字的首字母
asp在SQL SER2k中新建帐号和给帐号权限的实现
不用 EOF 以加快记录循环
js的单元格颜色间隔
根据选择的Checkbox动态在表格中列出选择的值
URL欺骗
汉字转化为拼音
一个不需要第三方组件,可实现华简单图形的类
组合查询之核心:拼接字符串

用VB将ASP代码封装成DLL


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 79 ::
收藏到网摘: n/a

       一、引言
  
    Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户、多线程,在 Web开发中得到了广泛的应用。服务器端的组件有别于客户端的组件。客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用。但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作。因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器。但是,因为 ASP脚本是纯文本格式,所以恶意者通过源代码可以很容易地看到原本不该看到的页面内容。因此,保护ASP源代码显得非常重要。将ASP代码封装成DLL,不仅加快了ASP代码的执行速度,而且也能保护原代码。当IIS被请求执行一个ASP程序,它首先会在ASP文件中找到标签之间的代码,并且执行它(也可以是之间的代码)。如果这个ASP程序在先前被调用过,那么它就会用内存中的编译过的程序来向用户返回HTML代码,如果没有,那么它就重新编译。这样就大大节省了服务器的资源。
  
  
  二、实现方法
  
    启动你的VB,选择ActiveX图标。这个图标可以在新建工程找到!VB会提供一个默认的工程名(project1)和类名(class1)。在动手之前请首先确认我们拥有Microsoft ActiveX Data Object 2.0 Library,它在我们的程序非常有用。从菜单中选择"工程",然后在其中选择"引用",就会出现"引用"窗口,从中选择Microsoft ActiveX Data Object 2.0 Library。
  
    现在我们有了我们自己的工程(project1)和类名(class1)。以后我们就会在ASP代码中使用它们的名字来引用这个组件。在ASP中我们就这样引用,如下:
  Set ObjReference = Server.CreateObject("ProjectName.ClassName")
  
    为了在类中使用ASP的方法,你必须在此类中写上初始和终止这两个函数。输入如下代码:程序清单中
  Class1.cls中的Private Sub Class_Initialize()和Private Sub Class_Terminate()
  
    将ASP代码中的关键功能制作成动态链接库(.dll),部分隐藏 ASP源代码。 例如:程序清单中的Global.bas和Class1.cls中输入的代码(代码的主要功能是检索数据库中的记录并显示出来)。
  
    在VB的下拉菜单中选择文件→生成article.dll→选择要保存的目录。找到article.dll将其复制到系统盘system32文件夹中,最后一步注册DLL文件。在开始菜单中选择运行输入regsvr32 c:\winnt\system32\article.dll。
  
  
  三、程序清单
  
    Global.bas中的代码:
  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
  
  
    Class1.cls中的代码:
  Private Sub Class_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
  
  
  Private Sub Class_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 Sub AspClassInit()
  
  On Error GoTo Err
  
  Set conn = Server.CreateObject("ADODB.Connection")
  
  strcon = "Prov