使用VB将ASP代码封装生成DLL文件
一.导言
服务器端脚本运行环境,简单易用,不需要编译连接。脚本可以直接在服务器端运行,并且它支持多用户和多线程,因此在Web开发中得到了广泛的应用。服务器的组件不同于客户端的组件。客户端的组件通过网络传输,依靠HTML工作,只能在IE上使用。但是服务器端组件运行在服务器端,它在服务器上执行各种操作。所以所有的浏览器都可以享受,它取决于服务器而不是浏览器。但是,由于ASP脚本是纯文本格式的,恶意者很容易看到源代码本不该看到的页面内容。因此,保护ASP源代码是非常重要的。将ASP代码封装成DLL,既加快了ASP代码的执行速度,又保护了原代码。当IIS被请求执行一个ASP程序时,它会首先找到ASP文件中标记之间的代码,并执行它(或者它们之间的代码)。如果这个ASP程序之前被调用过,它会使用内存中编译好的程序向用户返回HTML代码。如果没有,它将被重新编译。这大大节省了服务器的资源。
二。实现方法
启动你的VB并选择ActiveX图标。这个图标可以在新建的项目中找到!VB将提供一个默认的项目名(project1)和类名(class1)。在你做之前请确认我们有微软ActiveX数据对象2.0库,这在我们的程序中非常有用。从菜单中选择“项目”,然后在其中选择“引用”,会出现“引用”窗口,从中可以选择Microsoft ActiveX数据对象2.0库。
现在我们有了自己的项目(project1)和类名(class1)。我们以后在ASP代码中会用它们的名字来指代这个组件。在ASP中,我们是这样引用的,如下:
setobjreference = server . createobject(" project name . class name ")
为了在一个类中使用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文件。从“开始”菜单中选择“运行输入regsvr 32 c:\ win nt \ system32 \ article.dll”。
三。程序表
Global.bas中的代码:
以下是引号片段:
public obj context as object context
作为ASPTypeLibrary的公共应用程序。应用
作为ASPTypeLibrary的公共服务器。计算机网络服务器
作为ASPTypeLibrary的公共会话。会议
作为ASPTypeLibrary的公共响应。反应
作为ASPTypeLibrary的公共请求。请求
class 1 . cls中的代码:
private subclass _ initialize()
出错时继续下一步
Set objContext = GetObjectContext
设置Application = objContext。项目(“应用”)
Set Server = objContext。项目(“服务器”)
Set Session = objContext。项目(“会话”)
Set Request = objContext。项目(“请求”)
Set Response = objContext。项目(“响应”)
末端接头
私有子类_Terminate()
出错时继续下一步
设置应用程序=无
设置服务器=无
设置会话=无
设置请求=无
设置响应=无
Set objContext = Nothing
末端接头
Public Sub AspClassInit()
出错时转到错误
设置conn =服务器。CreateObject("ADODB。连接”)
strcon = "Provider=Microsoft。Jet . OLEDB.4.0”& _
"数据源=" & Server。MapPath("Article.mdb ")
连接打开strcon
设置rs =服务器。CreateObject("ADODB。记录集”)
sql = " select * from Article order商品订单"
rs。打开sql,康涅狄格州,1,1
Response . write " " & VBCRLF
Response . write " " & VBCRLF
Response . write " " & VBCRLF
Response . write“文章管理系统-CSSTUDIO”& vbCrLf
回复。写“& vbCrLf
回应。写“& vbCrLf
回应。写“& vbCrLf
回应。写“& vbCrLf
回应。写下“文章标题”& vbCrLf
回复。写下“点击”& vbCrLf
回复。写“添加日期”& vbcrlf
响应。写“& vbcrlf
响应。写" " & vbCrLf
而不是rs。EOF和行< rs。PageSize
响应。写“& vbCrLf
回应。write " " & vbCrLf
Response . write "☆Response . writers(" articleid ")
Response . write " " > " & vbcrlf
Response . writer " "
Response . writer " " & vbcrlf
Response . write " "
Response . writer(" click ")
Response . write " " & vbcrlf
Response . write " "
Response .]。写rs("添加日期")
Response . write " " & vbcrlf
Response . write " " & vbcrlf
Response . write " " & vbcrlf
RS . movenext
Wend
Response。写“& vbCrLf
回应。写" " & vbCrLf
rs。关闭
设置rs =无
关闭控制室
设置连接=无
出口接头
错误:
如果错误。Number = -13572468,然后退出Sub
接下来继续
End Sub
0条评论