登录 注册 找回密码 开启辅助访问 商业用户中心 购物车有0件商品 切换到宽版
搜索
查看: 4830|回复: 4
打印 上一主题 下一主题

[ASP] ASP封装DLL服务器上不需注册组件的方法

  [复制链接]
跳转到指定楼层
楼主
发表于 2010-10-14 16:18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在需要调用DLL信息的ASP页面顶部加上以下两句就OK啦,这样方便一些朋友使用的是虚拟主机,也没有注册组件的权限,小技巧,刚发现,学习学习!

<% @ language="vbscript" %>
<!--METADATA TYPE="typelib" FILE="dll文章的绝对路径"-->

例:在dll中编译以下代码:

Option Explicit
Private Context As ScriptingContext
Private Application As Application
Private Response As Response
Private Request As Request
Private Session As Session
Private Server As Server

Public Sub OnStartPage(PassedscriptContext As ScriptingContext)
Set Context = PassedscriptContext
Set Application = Context.Application
Set Request = Context.Request
Set Response = Context.Response
Set Server = Context.Server
Set Session = Context.Session

End Sub
Public Sub showinfo()
Response.Write "asp编译DLL,不需要服务器上注册组件!"

End Sub

' 释放内部对象
Public Sub OnEndPage()
Set Application = Nothing
Set Request = Nothing
Set Response = Nothing
Set Server = Nothing
Set Session = Nothing
Set Context = Nothing
End Sub

在一般情况下,如我的dll放在了 d:\myweb\test.dll那么需要服务器注册:regsvr32 d:\myweb\test.dll
在ASP中使用时:

<%
Dim newtest
Set newtest=Server.CreateObject("类模块名称")
newtest.showinfo()
%>



在不注册组件的情况下,我们这样来使用:



<% @ language="vbscript" %>
<!--METADATA TYPE="typelib" FILE="d:\myweb\test.dll"-->

<%
Dim newtest
Set newtest=Server.CreateObject("类模块名称")
newtest.showinfo()
%>



就可以达到你所预想的效果!为了保护你的程序代码安全,编译DLL是个不错的选择!不过以上方法,在本机测试通过,因为在编译DLL文件生成时,就已自动注册了DLL文件把文件移到服务器上或其它电脑上测试,均不能正常运行~看来asp想使用dll封装技术,还是得注册组件,移动性低

回复

使用道具 举报

沙发
发表于 2010-10-14 17:48:39 | 只看该作者
在服务器上还是要注册组件?!
那不等于白说了
回复 支持 反对

使用道具 举报

板凳
发表于 2010-10-14 18:07:12 | 只看该作者
我查看资料,这个方法不是在服务器上不注册使用COM组件,而是在ASP源码里可以用组件里的常量定义.
回复 支持 反对

使用道具 举报

地板
发表于 2010-10-18 13:17:53 | 只看该作者
看了半天,白看了
回复 支持 反对

使用道具 举报

5#
发表于 2010-11-21 14:36:33 | 只看该作者
我查看资料,这个方法不是在服务器上不注册使用COM组件,而是在ASP源码里可以用组件里的常量定义.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表