首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 网络编程-> ASP教程
如何把ASP编写成DLL-ASP教程,ASP应用
作者:网友供稿 点击:9
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
这篇文章主要是把asp代码变成组件,开发者不仅是加快了asp的速度,而且也能保护自己的代码.
下面,我们会来编写一个非常简单的组件,重点是知道怎样开发dll组件,而不是其复杂的代码!这些都要靠你们自己以后的努力了.

服务器端组件

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

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

想不想你写的程序自己就能在iis运行!?!现在你就行了!使用vb5(当然现在是vb6了),你就能建立dynamic linked libraries (dll 文件),它能在iis上直接运行(如果有asp文件来请求的话).

系统和软件的要求

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

我们开始吧

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

给工程和类命名

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

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

怎样使用工程和类

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

set objreference = server.createobject("projectname.classname")

对于我们工程的引用就是:
set objreference = server.createobject("example1.helloworld")
现在我们就能用objreference来调用我们在组件中所创建的函数,子程序.下面我们会来写一个sayhello的子程序, 我们执行它的代码如下:
程序代码:
<%
set objreference = server.createobject("example1.helloworld")
objreference.sayhello
%>

为了在helloword类中使用asp的方法,你必须在此类中写一个onstartpage
子函数.如下:
程序代码:
public sub onstartpage(passedscriptingcontext as scriptingcontext)
set myscriptingcontext = passedscriptingcontext
end sub

现在,无论什么时候用户访问一个带有本组件的asp文件,iis就会把scriptingcontext传送给我们的对象请我们使用.这个scriptingcontext包括了全部的asp方法和属性.实现上,这使得我们有能力访问所有asp的对象.看下面的代码:
程序代码:
public sub onstartpage(passedscriptingcontext as scriptingcontext)
set myscriptingcontext = passedscriptingcontext
set myapplication = myscriptingcontext.application
set myrequest = myscriptingcontext.request
set myresponse = myscriptingcontext.response
set myserver = myscriptingcontext.server
set mysession = myscriptingcontext.session
end sub

以后我们就能用在vb中用myapplication 来代替asp中的application,同理可以代替request,server.....,不过我们来是要在 onstartpage之前来申明这些变量:
程序代码:
private myscriptingcontext as scriptingcontext
private myapplication as application
private myrequest as request
private myresponse as response
private myserver as server
private mysession as session

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

用asp中实现:
程序代码:
<%
mytempvariable = request.form("username")
response.write ("you entered "& mytempvariable & "as your user name")
%>

在vb中实现:
程序代码:
mytempvariable = myrequest.form("username")
myresponse.write ("you entered "& mytempvariable & "as your user name")

通过使用myresponse来代替response,我们能够使用所有response的方法,当然,myresponse这个名字可以随便来取,你甚至可以就取response.
另一件我们得注意的是,我们得在我们的建立的类中,写上onendpage子函数,这个onstartpage是相反的!onstartpage是创建对象,onendpage是消毁对象.
程序代码:
public sub onendpage()
set myscriptingcontext = nothing
set myapplication = nothing
set myrequest = nothing
set myresponse = nothing
set myserver = nothing
set mysession = nothing
end sub

sayhello方法
我们来建立一个子函数,用于显示"holle world".这个sayhello方法只是helloworld这个类中一个子函数,我们以后会在asp中用以下的显示这个方法
程序代码:
<%
set objreference = server.createobject("example1.helloworld")
objreference.sayhello
%>

sayhello的程序,很简单的!
程序代码:
public sub sayhello()
myresponse.write ("hello world")
end sub


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

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

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

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

<html>
<head>
<title>example 1</title>
</head>
<body>
<%
set objreference = server.createobject("example1.helloworld")
objreference.sayhello
%>
</body>
</html>

运行后即可看到结果:

hello world

注册组件

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

regsvr32.exe c:/wwwroot/example1/example1.dll

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

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

让我们用组件来扩展我们的程序的功能吧!也希望多多的看到我们中国人的组件

文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·在ASP.NET中使用Office Web Components (OWC)创建统计图-.NET教程,数据库应用
·windows系统下jsp+mysql+tomcat的配置-JSP教程,Application/Applet
·把aspx文件编译成DLL文件-.NET教程,Asp.Net开发
·Haneng.com的简单留言板制作源程序例子-ASP教程,ASP应用
·使用VB实现邮箱自动注册(一):表单自动提交-.NET教程,VB.Net语言
·VS.NET安装指南(To菜鸟)-.NET教程,Asp.Net开发
·web下水晶报表的使用!-.NET教程,Web Service开发
·C# 静态成员和方法的学习小结-.NET教程,数据库应用
·IIS的使用-ASP教程,ASP基础
·asp讲座之二:读取通过表单发送的数据
最新文章
·photoshop鼠绘实例:浪漫夏夜壁纸_photoshop教程
·买卖中小网站交易的一些细节问题_站长心得
·七招打造最安全的windows xp操作系统_windows xp
·做google adsense最佳和最重要的要诀_网赚技巧
·上下文关联广告清单(内文广告)推荐_网赚技巧
·广告联盟,痛定思痛_网赚技巧
·insenz首批广告费发放给站长_网赚技巧
·李彦宏:三分之一时间用在寻找人才_站长访谈
·中国汽车资源网杨锁民:网络寒冬时下海_站长访谈
·做it新闻资讯网站应先学新浪_站长心得
相关主题
  • 如何把ASP编写成DLL-ASP教程,ASP应用
  • 如何把ASP编写成DLL-ASP教程,ASP应用
  • 如何把ASP编写成DLL-ASP教程,脚本编码
  • 如何把asp编写成dll 
  • 西部数码虚拟主机

    友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 自助建站
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机
    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
    关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
    发表评论 打印  刷新     关闭