用VB将ASP代码封装成DLL

2016-01-29 18:54 73 1 收藏

用VB将ASP代码封装成DLL,用VB将ASP代码封装成DLL

【 tulaoshi.com - ASP 】

 

一、引言

  Server端的脚本运行环境,它简单易用,不需要编译和连接,脚本可以在 Server端直接运行,并且它支持多用户、多线程,在 Web开发中得到了广泛的应用。服务器端的组件有别于客户端的组件。客户端的组件是通过网络传输,依靠HTML来起作用,而且只能在IE上有用。但是服务器端的组件是运行在服务器端,它在服务器上执行各种操作。因此,所有的浏览器都能享用,它依靠的是服务器而不是浏览器。但是,因为 ASP脚本是纯文本格式,所以恶意者通过源代码可以很容易地看到原本不该看到的页面内容。因此,保护ASP源代码显得非常重要。将ASP代码封装成DLL,不仅加快了ASP代码的执行速度,而且也能保护原代码。当IIS被请求执行一个ASP程序,它首先会在ASP文件中找到标签之间的代码,并且执行它(也可以是之间的代码)。如果这个ASP程序在先前被调用过,那么它就会用内存中的编译过的程序来向用户返回HTML代码,如果没有,那么它就重新编译。这样就大大节省了服务器的资源。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)


二、实现方法

  启动你的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:winntsystem32article.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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/asp/)

Set Response = Nothing

Set objContext = Nothing

End Sub


Public Sub AspClassInit()

On Error GoTo Err

Set conn = Server.CreateObject("ADODB.Connection")

strcon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & Server.MapPath("Article.mdb")

conn.Open strcon

Set rs = Server.CreateObject("ADODB.Recordset")

sql = "select * from Article order by ArticleID desc"

rs.Open sql, conn, 1, 1

Response.Write "<html" & vbCrLf
Response.Write "<head" & vbCrLf
Response.Write "<meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312""" & vbCrLf
Response.Write "<title文章管理系统-CSSTUDIO</title" & vbCrLf
Response.Write "</head" & vbCrLf
Response.Write "<body bgcolor=""#FFFFFF"" topmargin=""0""" & vbCrLf
Response.Write "<table width=""100%"" border=""0"" cellpadding=""2"" cellspacing=""0""" & vbCrLf
Response.Write " <tr" & vbCrLf
Response.Write " <td width=""742"" height=""20""文章标题</td" & vbCrLf
Response.Write " <td width=""90""点击</td" & vbCrLf
Response.Write " <td width=""145""

来源:http://www.tulaoshi.com/n/20160129/1507731.html

延伸阅读
标签: ASP
     如果你想脱离asp爱好者的水平,那么你就应该学会为asp编写组件。我在google上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助。     开始吧,让我们一起编写一个”hello world!”的示例。我这里用的是Delphi 7。     ...
  如果你想脱离asp爱好者的水平,那么你就应该学会为asp编写组件。我在google上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助。如果你要学习VB编写asp组件的话,建议看看龙卷风大哥的文章(http://blog.csdn.net/online/category/9939.aspx),不是我可以比的。呵呵:)...
标签: ASP
  以下是代码: <% on error resume next   Dim objXMLHTTP, xml   Set xml = Server.CreateObject("Microsoft.XMLHTTP")   xml.Open "GET", "http://chanye.finance.sina.com.cn/yj/2005-01-05/236914.shtml", False   xml.Send   tmpstr= xml.responseText   ep=clng(instr(1,tmpstr,"meta_data2"))...
标签: Web开发
Slider类的功能说明: 1、可以控制任何一个页面上存在的div 2、slider在滑动的同时还可以实现透明度的变化,整个过程更平滑、更美观 3、可控性强,通过多个参数实现不同大小的div不同方向、不同速度的滑动 4、调用方便,一句话即可初始化,slider的隐现控制更为简单,详情参见代码例子 关于Slider类实现过程的说明: 有感于现在的网站经常...
标签: Web开发
!--#include file="inc/conn.asp"--  %  dim rs,sql,filename,fso,myfile,x  Set fso = server.CreateObject("scripting.filesystemobject")  filename = Server.MapPath("download.txt")  if fso.FileExists(filename) then  fso.DeleteFile(filename)&nbs...

经验教程

963

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部