社区
VB基础类
帖子详情
100分高分求解!!!dll注册问题!!
lzrose
2002-06-30 04:08:05
在VB中做了个组件,在网页ASP中来调用,把VB打开让程序处于启动状态时,一切正常。
但是把它生成dll并注册后,在网页上调用不起作用。
不知道原因??紧急求助。
...全文
42
8
打赏
收藏
100分高分求解!!!dll注册问题!!
在VB中做了个组件,在网页ASP中来调用,把VB打开让程序处于启动状态时,一切正常。 但是把它生成dll并注册后,在网页上调用不起作用。 不知道原因??紧急求助。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
孙小雄
2002-07-01
打赏
举报
回复
写Activex dll 如果用作asp调用
你应该设置一些东西
如 ASPTypeLibrary
Microsoft Active Server Pages Object
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应用程序。
gxingmin
2002-07-01
打赏
举报
回复
在ie的安全设置里自定义级别,启动所有Activex选项
wgku
2002-06-30
打赏
举报
回复
UP
ayusay
2002-06-30
打赏
举报
回复
你的Dll是不是有窗体啊,dll 是服务器端组件,不能有用户界面的。
另外,也有可能是版本问题。你用这段代码来试试:
<%
on error resume next
dim a
set a=createobject("yourdll.yourclass")
if err.number<>0 then
response.write err.description
response.end
endif
a.属性1=value1
if err.number<>0 then
response.write err.description
response.end
else
response.write a.属性1
endif
a.属性2=value2
if err.number<>0 then
response.write err.description
response.end
else
response.write a.属性2
endif
......
a.方法1
if err.number<>0 then
response.write err.description
response.end
endif
a.方法2
if err.number<>0 then
response.write err.description
response.end
edif
.....
set a=nothing
%>
这样来测试一下,应该可以发现问题的所在。
lzrose
2002-06-30
打赏
举报
回复
我已经用regsvr32 注册了,没用。
Laney
2002-06-30
打赏
举报
回复
用regsvr32 文件名就可以
lzrose
2002-06-30
打赏
举报
回复
在服务器上注册了,没用,还是不起作用。
ying39
2002-06-30
打赏
举报
回复
应该是需要在服务器上注册相关DLL吧,运行REGSVR32 注册一次试试,WIN9X在WINDOWS\SYSTEM目录下,NT\2000在..\SYSTEM32下相关参数运行该命令就可以得到了。/U就是卸载。
VC与Labview、Matlab编程论文资料[2].rar
Java调用VC_
DLL
实现串口GPS的访问.pdf LabVIEW_快速构建步进电机控制系统的利器.pdf LabVIEW下普通数据采集卡的驱动与调用.pdf LabVIEW下远程虚拟实验室的研究与实现.pdf LabVIEW与Matlab_Simulink混合编程方法...
VC与Labview、Matlab编程论文资料
Java调用VC_
DLL
实现串口GPS的访问.pdf LabVIEW_快速构建步进电机控制系统的利器.pdf LabVIEW下普通数据采集卡的驱动与调用.pdf LabVIEW下远程虚拟实验室的研究与实现.pdf LabVIEW与Matlab_Simulink混合编程方法...
软考高项论文50
分
秘籍——心法篇
讲师以52
分
和53
分
通过论文,2次
高
分
通过,方法论经得起考验
VC与Labview、Matlab编程论文资料[4].rar
Java调用VC_
DLL
实现串口GPS的访问.pdf LabVIEW_快速构建步进电机控制系统的利器.pdf LabVIEW下普通数据采集卡的驱动与调用.pdf LabVIEW下远程虚拟实验室的研究与实现.pdf LabVIEW与Matlab_Simulink混合编程方法...
我在CSDN参与的3000个帖子
2:
100
分
急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,...
VB基础类
7,763
社区成员
197,609
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章