| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2531 人关注过本帖, 1 人收藏
标题:编写我们自己的ActiveX DLL
只看楼主 加入收藏
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
结帖率:100%
收藏(1)
 问题点数:0 回复次数:3 
编写我们自己的ActiveX DLL

我们开始正式编写我们自己的ActiveX DLL,以便来实现ASP中的同样功

能,众所周知,ASP内置了Response、Request、Server、Session、Application五个对象,其实这五个内

置对象正是IIS控制台初始化的五个ActiveX DLL组件,既然IIS可以初始化这五个组件用于ASP中,我们当

然也可以直接在我们的ActiveX DLL中引用这些组件来实现我们的编程,也就是说我们可以在VB应用程序中

通过引用这些组件来实现访问ASP内置对象的功能。

  只要你安装了PWS4或者IIS4以上的WEB服务器,你就拥有了一个名称叫做“Microsoft Active Server

Pages Object”的对象库,我们可以在VB的ActiveX DLL应用中引用这个对象库,通过引用这个对象库,我

们就获得了一个对象(类):ScriptingContext,这个对象也正是我们整个文章探讨的核心对象。对象库

内的关系如下:

  对象库      类        类成员

  ASPTypeLibrary ScriptingContext Application

                    Request

                    Response

                    Session

                    Server

  通过上面的关系图,我们就可以很容易理解类ScriptingContent。下面我们来看一个具体的例子吧:

  1、 使用VB6创建一个新的ActiveX DLL项目

  2、 引用“Microsoft Active Server Pages Object”对象库。

  3、 创建两个组件事件:OnStartPage以及OnEndPage

  4、 在事件OnStartPage中创建类ScriptingContent的一个引用。

  5、 实例化类ScriptingContent。

  Test.cls (类实现)
''对象的声明

  Dim rp as Response

  Dim rq as Request

  Dim ap as Application

  Dim sr as Server

  Dim sn as Session

  ''当组件被创建的时候会触发这个事件

  Public Sub OnStartPage(mysc as ScriptingContent)

   ''进行对象的实例化

   set rp=mysc.Response

   set rq=mysc.Request

   set sr=mysc.Server

   set ap=mysc.Application

   set sn=mysc.Session

   rp.write "<br>ActiveX DLL组件已经被创建了!<br>"

  End Sub

  ''当组件被销毁的时候触发这个事件

  Public Sub OnEndPage()

   Rp.write "<br>ActiveX DLL组件已经被销毁!<br>"

   ''销毁对象

   Set rp=nothing

   Set rq=nothing

   Set sr=nothing

   Set ap=nothing

   Set sn=nothing

  End Sub

  ''定义我们自己的一个组件方法

  Public Sub HelloWorld()

   Rp.write "<H1>Hello,World!</H1>"

  End Sub

  这样,我们就创建可以访问ASP内置对象的ActiveX DLL了。我们命名这个组件项目为first,在VB中间

编译这项目成为一个DLL文件first.dll,并且我们在系统中注册这个DLL文件。接下来,我们需要一个简单

的几乎没有什么代码的ASP程序来调用这个组件:

  test.asp

  <html>

   <head>

    <title>测试ActiveX DLL</title>

   </head>

   <body>

  <%

  Dim testme

  ''创建我们刚才编译成功的组件,一旦创建这个组件,同时会在叶面输出文字“ActiveX DLL组件已经

  ''创建了!”

  set testme=server.createobject("first.test")

  ''调用组件的方法

  testme.HelloWorld

  ''注销组件,在注销的同时,会自动在叶面显示“ActiveX DLL组件已经被销毁!”

  set testme=nothing

  %>

   </body>

  </html>

[此贴子已经被作者于2006-2-22 15:02:24编辑过]

搜索更多相关主题的帖子: ActiveX DLL 编写 
2006-02-22 14:58
wsn
Rank: 2
等 级:新手上路
威 望:5
帖 子:321
专家分:0
注 册:2006-2-9
收藏
得分:0 
支持楼主

已婚男人!没事请勿打扰·老婆格言:①不准對她耍酷 ②不准讓她吃醋 ③吵架我要讓步 ④揍我我要挺住⊙⊙
2006-02-22 15:26
VB爱上我
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:478
专家分:52
注 册:2005-10-14
收藏
得分:0 
ScriptingContext 是一个类而这下面的五个也是类。但是 ScriptingContext.后面就会出现这五个成员。类里面还类存在吗???           
                    Application

                    Request

                    Response

                    Session

                    Server


IT618资讯网 提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.
2006-02-22 16:42
xinfresh
Rank: 4
等 级:贵宾
威 望:13
帖 子:594
专家分:0
注 册:2006-1-13
收藏
得分:0 
正好这个不会,十分感谢楼主

E-mail:xinfresh@QQ:383094053校内:http:///getuser.do?id=234719042
2006-02-22 18:15
快速回复:编写我们自己的ActiveX DLL
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020111 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved