首页 > 语言 > 关键词  > asp最新资讯  > 正文

用VB编写ActiveX DLL实现ASP编程

2008-10-21 17:01 · 稿源:54master.com

ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境。他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到一定的影响,更为关键的是,使用ASP来开发完成一个项目之后,整个项目在交付客户使用的时候,是会连带所有的ASP脚本源代码的,也就无法将商业程序保密了,源代码泄漏会给自己造成很大的损失,虽然微软也相应的推出了用来加密ASP程序的软件,但是有着诸多的限制,以及会降低程序运行的速度和二次开发调试的难度,难道ASP做出来的项目就真的要暴露所有的源代码吗? 

当然了,答案当然是否定的,因为世界上没有绝对不可能的事情,接下来就跟随我来看看如何利用VB的ActiveX DLL来实现将ASP程序封装起来吧,也就是我们可以使用ActiveX DLL来完成所有ASP能完成的事情,而ActiveX DLL是编译好的DLL文件,别人是无法得知你的源代码的,也就保证的自己的商业机密和核心技术,并且达到同样的效果,使用完全封装的ActiveX DLL会比完全适用ASP脚本语言的执行速度要快很多,尤其是大运算量的时候跟为明显!经过我们的具体测试,在操纵10000条数据库记录的时候,封装成为ActiveX DLL的WEB应用程序比纯ASP代码的应用程序,速度上面要快大约21%左右,在目前国内过于缓慢的网络来讲,速度就是一个WEB站点的很关键的一部分。并且采用了ActiveX DLL来开发WEB程序,要比单纯使用ASP好得多,毕竟ASP只能使用VBScript来开发,无法享用VB大量的优点,而ActiveX DLL则可以充分利用VB里面所有的特性。

下面我们先来看看什么是ActiveX DLL吧。ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,加快了程序项目的开发速度,一般被称为“组件”。在VB6的集成开发环境当中,我们可以看到一下几种ActiveX项目:
  1、ActiveX EXE
  这是在“过程外”运行的ActiveX/COM服务器组件,也就是说他们运行的过程和初始化组件的客户机代码不同。尽管可以用ASP访问ActiveX EXE,但是不推荐改动IIS元库,该库允许所有的可执行文件由服务器上运行的脚本代码启动。
  2、ActiveX OCXs
  这些特殊的组件把主机应用程序显示和操作组件所需的附加支持包含在GUI环境中。还可以把OCX组件放在网页当中。但是,OCX是应用程序界面,不可以使用ASP来创建的。
  3、ActiveX文档DLL和ActiveX文档EXE
  Active文档可以在OLE文件箱应用程序中,例如IE或者Office Binder,显示VB表单。但他们在ASP不能应用。
  4、ActiveX DLLs
  这些ActiveX/COM组件和初始化组件的客户机在同一个进程中运行。而我们要讨论的ActiveX DLL正是整个组件。一般微软的附加组件和其他的一些第三方厂家提供的各种组件都是这种类型的ActiveX DLL,但是并不全是使用VB编写的,同样可以使用VC/JAVA等等语言来开发。
  探讨完了什么是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>

通过上面简单的例子,我们可以看到使用ActiveX DLL同样可以实现和ASP同样的功能,并且带来的代码保密和程序运行更加高效的优点。ActiveX DLL和纯ASP有着各自的优点和缺点,只要我们合理的运用这两种技术,比如适当的将商业逻辑封装在ActiveX DLL中,或者在需要保密的地方使用DLL封装技术,一定可以编写出高效快速的WEB应用程序。

举报

  • 相关推荐
  • 苹果MacBook Pro明年升级OLED !三星独家供应面板

    苹果计划在2026年推出的新款MacBook Pro将从mini-LED技术升级到OLED技术。 最新消息指出,三星将负责该笔记本的面板供应,此外苹果可能会像在iPhone上一样,放弃刘海设计,改用灵动岛的药丸状开孔。 报道指出,三星之所以成为苹果MacBook Pro OLED面板的唯一供应商,是因为该公司持续在8.6代生产线上投入资金。 苹果在产品中需要使用氧化物薄膜晶体管(TFT)技术,三星计划提供�

  • 终结“油车不智能”时代!联手奥迪,A5L Sportback首搭华为乾崑智驾

    8月1日,上汽奥迪A5L Sportback正式上市,成为全球首款搭载华为乾崑智驾技术的燃油车。该车融合德系机械底蕴与中国智能科技,配备32个高性能传感器和华为ADS 2.0系统,实现高速、城区、泊车全场景智能驾驶。动力方面搭载第五代EA888发动机(200kW)和quattro四驱系统,百公里加速5.6秒。设计上延续奥迪经典溜背造型,提供六款配置车型,售价25.99万元起。华为乾崑智驾系统已累计辅助驾驶35.41亿公里,泊车辅助超2.3亿次,用户人均辅助驾驶里程达524公里。此次合作标志着传统豪华品牌与智能科技的深度融合,为燃油车智能化发展开辟新路径。

  • AI日报:GPT-5-Auto现身Mac客户端;阿里开源WebAgent项目WebShaper;腾讯推X-Omni多模态模型

    【AI日报】今日AI领域重要动态:1)阿里开源WebAgent项目WebShaper,GAIA评测超越Claude4-Sonnet;2)Moonvalley推出草图转视频功能,支持手绘生成电影级视频;3)腾讯X-Omni模型实现图文理解重大突破;4)百度搜索测试AI应用中心入口;5)Midjourney+新增个性化推荐功能;6)GPT-5或于2025年夏季发布;7)Ollama推出桌面客户端;8)OWL团队开源多智能体协作工具Eigent;9)OpenAI年收入激增至120亿美元;10)英伟达H20芯片因安全风险被约谈;11)万兴科技天幕2.0模型国内排名第四,与华为云共建AI视频实验室。

  • Razer(雷蛇)在新加坡设立AI CENTER OF EXCELLENCE,加速人工智能投资布局

    雷蛇宣布在新加坡设立全球AI卓越中心,并计划在欧洲和美国建立类似机构,推动游戏与开发者工具领域的创新。新加坡中心将招聘150名AI工程师,专注于下一代AI游戏技术研发。雷蛇还推出AI工具套件,包括Game Co-AI和QA Co-AI,帮助开发者提升游戏质量和开发效率。该战略布局正值全球游戏市场快速增长期,预计2033年AI游戏市场规模将达280亿美元。新加坡数字产业发展局表示,此举将巩固该国作为区域AI创新中心的地位。

  • CleanMyMac上线云存储清理功能

    CleanMyMac推出全新"云存储清理"功能,支持iCloud和OneDrive两大主流云服务。该功能提供统一可视化界面,可批量删除云端和本地的重复文件,或仅解除同步保留云端文件。通过滚动列表和可视化图谱两种模式,帮助用户高效管理存储空间。所有操作均在本地完成,确保数据安全。软件提供7天免费试用,并推出Basic基础版和Plus高级版两种套餐,现有用户可免费升级体验Plus全部功能。未来计划支持腾讯云、百度云等中国本土云平台,持续优化Mac存储管理体验。

  • 出门问问TicNote销量居录音同品类热卖榜第一名

    出门问问(02438.HK)旗下AI产品TicNote在国内热销,该产品搭载Agentic AI技术,具备思考、记忆和创作能力。截至8月6日,TicNote在天猫、京东相关品类销量排名第一,全球销量突破万台。产品内置"Shadow AI"系统,集记录、分析、创作功能于一体,适用于会议、医疗、教育等多场景。公司股价近期飙升超60%,反映市场对其AI商业化落地的看好。作为拥有十年AI技术积累的企业,出门问问持续深耕人机交互领域,未来将以"Shadow AI"为核心,拓展更多AI应用场景。

  • 全新奥迪 A5L Sportback 上市,首搭华为乾崑智驾,限时臻享价25.99万元起

    2025年8月1日,上汽奥迪A5L Sportback正式上市,推出六款配置车型,售价25.99万元起。该车是全球首款搭载华为乾崑智驾技术的燃油车,配备32个高性能传感器和激光雷达,支持高速、城区、泊车全场景智能驾驶。动力方面搭载第五代EA888发动机,百公里加速5.6秒,并配备quattro智能四驱系统。新车延续奥迪经典掀背造型,轴距加长提升实用性,内饰采用新一代智能豪华座舱设计。此次上市标志着传统豪华品牌在智能化浪潮下的创新突破,为燃油车市场注入新活力。

  • iQOO Z10 Turbo+首销战绩公布:为Z10 Turbo Pro的174%

    iQOO品牌正式发布了其全新旗舰机型iQOO Z10Turbo+,并同步开启销售。这款新机以其卓越的性能和超长续航能力迅速吸引了市场关注,官方数据显示,其首销成绩达到了此前Z10Turbo Pro的174%,显示出消费者对其的高度认可。 iQOO Z10Turbo+的核心亮点在于其搭载的8000mAh超大容量电池,这在当前的智能手机市场中极为罕见。该机型不仅配备了天玑9400+旗舰处理器,还配备了旗舰级的LPDDR5X U

  • 第十三届互联网安全大会开幕:All In Agent

    2025年8月6日,第十三届互联网安全大会(ISC.AI2025)在北京国家会议中心开幕。本届大会以"All In Agent"为主题,聚焦智能体时代下的数字安全与人工智能前沿。360创始人周鸿祎指出,大模型必须进化成智能体才能成为生产力工具,并揭示了智能体演进的四个层级:从聊天助手到多智能体蜂群协作。360推出的安全智能体基于大模型,具备自主规划、工具调用等能力,可复制人类安全专家能力。在网络安全领域,智能体正形成颠覆性影响,360将推动全线产品智能化,用安全智能体重塑数字安全。周鸿祎强调"安全是数字化的底座,AI是数字化的巅峰",360将坚持"安全+AI"双主线发展。

  • PPIO亮相WAIC 2025,重磅推出国内首个Agentic AI基础设施服务平台

    7月26日至29日,中国领先的分布式云服务商PPIO在2025世界人工智能大会上发布国内首个Agentic+AI基础设施服务平台,加速智能体应用开发。平台推出通用版和企业版:通用版提供高性价比分布式GPU云底座,兼容E2B接口的智能体沙箱环境;企业版支持多模态协同、长时记忆等五大差异化功能,构建决策到执行闭环。PPIO智能体沙箱基于Firecracker微虚拟机技术,具备毫秒级启动、强隔离等特性,成本仅为行业标准的50%以下。在教育领域已有落地案例,帮助学校实现备课效率提升50%以上。CEO姚欣表示,该平台将降低开发者门槛,推动智能体从技术探索迈向规模化应用新阶段。