寫DLL FOR ASP問題,來者有分!

hpj2002 2005-05-09 11:00:24
我在VB6中新建了個ActiveX DLL
如下:
Public Sub OnStartPage(PassedScriptContext As ScriptingContext)
Set mContext = PassedScriptContext
Set mApplication = mContext.Application
Set mRequest = mContext.Request
Set mResponse = mContext.Response
Set mServer = mContext.Server
Set mSession = mContext.Session
End Sub

Public Sub OnEndPage()
Set mApplication = Nothing
Set mRequest = Nothing
Set mResponse = Nothing
Set mServer = Nothing
Set mSession = Nothing

Set mContext = Nothing
End Sub

Public Sub Count()
Dim i As Long
Dim j As Long
For i = 0 To 10000000
j = j + 2
Next i
mResponse.Write j
End Sub
引用了:Microsoft Active Server Pages Object Library
保存工程名為:aa
class名為:bb
最終make dll為:aa.dll

regsvr32 aa.dll 也成功

asp文件如下:
<%
  Set obj = Server.CreateObject("aa.bb")
  obj.Count
  set obj=nothing

%>

運行出現以下提示:
Microsoft VBScript 編譯階段錯誤 錯誤 '800a0408'

不正確的字元

/test6.asp, 列2

  Set obj = Server.CreateObject("aa.bb")
^
請各位指點,是哪出了問題
小第感激不盡
...全文
129 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmslovehxh 2005-05-09
  • 打赏
  • 举报
回复
用DLL 是不是要自己有服务器?
  • 打赏
  • 举报
回复
先预定义一下
  • 打赏
  • 举报
回复
Public Sub OnStartPage(MyscriptingContext As ScriptingContext)
gvIndexPage = 1
Set GVsc = MyscriptingContext
Set GVac = MyscriptingContext.Application
Set GVrq = MyscriptingContext.Request
Set GVrs = MyscriptingContext.Response
Set GVsv = MyscriptingContext.Server
Set GVss = MyscriptingContext.Session
End Sub
  • 打赏
  • 举报
回复
Public GVsc As ScriptingContext
Public GVac As Application
Public GVrq As Request
Public GVrs As Response
Public GVsv As Server
Public GVss As Session
Public conn As Connection
Public gClass As String
Public yourArea As String
Public areaTxt As String
raas 2005-05-09
  • 打赏
  • 举报
回复
up
underone 2005-05-09
  • 打赏
  • 举报
回复
关注
hpj2002 2005-05-09
  • 打赏
  • 举报
回复
謝謝各位大哥!
yb2008 2005-05-09
  • 打赏
  • 举报
回复
以上我测试过,正确...编译成dll,之后要用Regsvr32 路径\*.dll注册.

注意:

1.工程名不是工程文件名,是在属性窗口里改的

2.类不是类文件名......也是在............
yb2008 2005-05-09
  • 打赏
  • 举报
回复
使用组件封装数据库操作(一)

作者:未知 文章来源:Internet 点击数: 168 更新时间:2003-6-12

其实,大家在书写asp程序时,最担心的可能就是数据库的连接信息,会被一些人看到,进行一些破坏。下面我们用vb6.0来做一个动态链接库(.dll)来隐藏数据库的连接信息。
  启动vb6.0,新建-->Active dll工程。单击"工程"-->引用,选择"microsoft active server pages object library"
和"microsoft activeX data objects 2.1 library"两项。将类模块的名称改为dcss.将工程的名称改为yygwy.保存工程文件yygwy.vbp和类文件dcss.cls。
在dcss.cls中写入:
Private myscriptingcontext As ScriptingContext
Private myapplication As Application
Private myrequest As Request
Private myresponse As Response
Private myserver As Server
Private mysession As Session

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

Public Sub onendpage()
Set myscriptingcontext = Nothing
Set myapplication = Nothing
Set myrequest = Nothing
Set myresponse = Nothing
Set myserver = Nothing
Set mysession = Nothing
End Sub

'以上语句是必须的。
'定义两个公有函数

Public Function datasource() As Variant
datasource = "driver={sql server};server=yang;uid=sa;pwd=; database=dcss"
End Function

编译生成dcss.dll文件。注册regsvr32 路径\dcss.dll。
用visual interdev打开global.asa文件.当然了,你也可以在其它文件中使用。
set dcss=server.CreateObject("yygwy.dcss")
oconn=dcss.datasource()
application("strconn")=oconn

在其它的页面中如下调用即可:
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open application("strconn")

  • 打赏
  • 举报
回复
对啊,通过里的工程名称是什么??
hhjjhjhj 2005-05-09
  • 打赏
  • 举报
回复
Server.CreateObject("eg.ob")中的"eg",不是保存的工程名,也不是DLL文件名,而是在工程属性中设置的
  • 打赏
  • 举报
回复
你把什么html object library

dhtml runtime。。

webclass library

asp library的都引用一下试试
hpj2002 2005-05-09
  • 打赏
  • 举报
回复
Option Explicit
Public GVsc As ScriptingContext
Public GVac As Application
Public GVrq As Request
Public GVrs As Response
Public GVsv As Server
Public GVss As Session


Public Sub OnStartPage(MyscriptingContext As ScriptingContext)
Set GVsc = MyscriptingContext
Set GVac = MyscriptingContext.Application
Set GVrq = MyscriptingContext.Request
Set GVrs = MyscriptingContext.Response
Set GVsv = MyscriptingContext.Server
Set GVss = MyscriptingContext.Session
End Sub

Public Sub onendpage()
GVrs.Write "activex dll已退出!"
Set GVrs = Nothing
Set GVrq = Nothing
Set GVss = Nothing
Set GVsv = Nothing
End Sub
Public Sub helloworld()
GVrs.Write "<h1>hello,world!</h1>"
End Sub

保存工程名為:eg
class名為:ob
最終make dll為:eg.ob

regsvr32 eg.dll 也成功

asp文件如下:
<%
  Set obj = Server.CreateObject("eg.ob")
  obj.helloworld
  set obj=nothing

%>
Microsoft VBScript 編譯階段錯誤 錯誤 '800a0408'

不正確的字元

/test6.asp, 列2

  Set obj = Server.CreateObject("eg.ob")
^
還是以上錯誤,不解????

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧