请教高手,自制的DLL组件能注册成功,为何在asp中不能成功调用createobject?

nkwen 2000-05-09 09:22:00
我按照 chinaasp.com 上的方法,在dos下用 net stop iisadmin /y 和 mtxstop 停止iis服务,然后编译成 dll 文件,用regsvr32 path\*.dll 注册,然后启动iis服务,在一台机器(nt4.0)上能在asp中用 createobjects 调用dll文件,但有些有些机器(nt4.0)上不行,在windows 2000下也能注册,但是在asp中不能调用createobjects 产生实例,请问为什么?另外,为什么要 在dos下用 net stop iisadmin /y 和 mtxstop 停止iis服务,然后再编译成 dll 文件?
...全文
106 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
iblue2 2000-06-07
  • 打赏
  • 举报
回复
你是用什么来编写DLL的?如果是BCB,那么你必须在compile时不要选择use RTTL 和 Build with packages两个选项,让你的程序进行全部编译。
其实启动和停止IIS服务不一定要在DOS下进行,你也可以用IIS的management console来进行。
鱼鱼asp函数组件(fishasp20090218.dll) 鱼鱼版权所有,非经鱼鱼许可禁止用于商业用途 鱼鱼QQ:260332019 EMAIL:afishofsun@163.com 注意:请先注册鱼鱼asp函数组件,然后才能调用鱼鱼asp组件函数 鱼鱼asp组件注册文件:regdll.bat,鱼鱼asp组件卸载文件:unregdll.bat 鱼鱼asp组件调用示例文件:test.asp(测试文件),db.asp(数据库) 组件文件fishasp20090218.dll组件名称fishasp20090218,包含类fasp,类fasp包含下列函数。 组件调用: dim faspobj set faspobj=server.createobject("fishasp20090218.fasp") '创建fasp对象 dim s=faspobj.delpiccontent("sdfsd<") '使用fasp对象调用函数 '------------------------------------- '鱼鱼ASP函数 '鱼鱼版权所有,不可用于商业用途 'QQ:260332019 EMAIL:afishofsun@163.com '函数delpiccontent(str),该函数用来删除字段内容的图片内容/代码。 '------------------------------------- '天枫ASP class v1.0鱼鱼修改版,集常用asp函数于一体 '天枫版权所有http://www.52515.net 'QQ:76994859 EMAIL:Chenshaobo@gmail.com '所有功能函数名如下: '------------------------------------- '--------字符处理-------------------------- '**************************************************** '函数名:StrLength(str) '作 用:取得字符串长度(汉字为2) '参 数:str ----字符串内容 '返回值:字符串长度 '**************************************************** '**************************************************** '函数名:CutStr(str, strlen) '作 用:字符串长度切割,超过显示省略号 '参 数:str ----字符串内容 ' strlen ------要显示的长度 '返回值:切割后字符串内容 '**************************************************** '--------------系列验证---------------------------- '**************************************************** '函数名:CheckIsEmpty(tstr) '作 用:检查是否为空 '参 数:tstr ----字符串 '返回值:true不为空,false为空 '**************************************************** '**************************************************** '函数名:isInteger(para) '作 用:整数检验 '参 数:tstr ----字符 '返回值:true是整数,false不是整数 '**************************************************** '**************************************************** '函数名:CheckName(str) '作 用:名字字符检验 '参 数:str ----字符串 '返回值:true无误,false有误 '**************************************************** '**************************************************** '函数名:CheckPassword(str) '作 用:密码检验 '参 数:str ----字符串 '返回值:true无误,false有误 '**************************************************** '**************************************************** '函数名:CheckEmail(email) '作 用:邮箱格式检测 '参 数:str ----Email地址 '返回值:true无误,false有误 '**************************************************** '--------------信息提示---------------------------- '**************************************************** '函数名:Alert(msg, goUrl) '作 用:弹出对话框提示 '参 数:msg ----对话框信息 ' gourl ----提示后转向哪里 '返回值:无 '**************************************************** '**************************************************** '函数名:GoBack(str1, str2, isback) '作 用:错误信息提示 '参 数:str1 ----信息提示标题 ' str2 ----信息提示内容 ' isback ----是否显示返回 '返回值:无 '**************************************************** '**************************************************** '函数名:Suc(str1, str2, url) '作 用:成功提示信息 '参 数:str1 ----信息提示标题 ' str2 ----信息提示内容 ' url ----返回地址 '返回值:无 '**************************************************** '--------------安全处理---------------------------- '**************************************************** '函数名:ChkPost() '作 用:禁止站外提交表单 '返回值:true站内提交,flase站外提交 '**************************************************** '**************************************************** '函数名:PSql() '作 用:防止SQL注入 '返回值:为空则无注入,不为空则注入并返回注入的字符 '**************************************************** '**************************************************** '函数名:FiltrateHtmlCode(str) '作 用:防止生成html代码 '参 数:str ----字符串 '**************************************************** '**************************************************** '函数名:HtmlCode(str) '作 用:过滤Html标签 '参 数:str ----字符串 '**************************************************** '**************************************************** '函数名:Replacehtml(tstr) '作 用:清理html '参 数:tstr ----字符串 '**************************************************** '---------------获取客户端和服务端的一些信息------------------- '**************************************************** '函数名:GetIP() '作 用:获取客户端IP地址 '返回值:客户端IP地址 '**************************************************** '**************************************************** '函数名:GetBrowser() '作 用:获取客户端浏览器信息 '返回值:客户端浏览器信息 '**************************************************** '**************************************************** '函数名:GetSystem() '作 用:获取客户端操作系统 '返回值:客户端操作系统 '**************************************************** '**************************************************** '函数名:CUrl() '作 用:获取当前页面URL的函数 '返回值:当前页面URL的函数 '**************************************************** '**************************************************** '函数名:GetExtend(FileName) '作 用:取得文件扩展名 '参 数:filename ----文件名 '**************************************************** '------------------数据库的操作----------------------- '**************************************************** '函数名:conndb(str) '作 用:连接数据库,返回连接对象 '参 数:str---数据库连接串 '返回值:conn打开的连接对象 '**************************************************** '**************************************************** '函数名:creaters() '作 用:创建记录集对象 '参 数: '返回值:rs创建的记录集对象 '**************************************************** '**************************************************** '函数名:CheckExist(conn, table, fieldname, fieldcontent, isblur) '作 用:检测某个表某个字段是否存在某个内容 '参 数:conn---数据库连接对象 'table ----表名 ' fieldname ----字段名 ' fieldcontent ----字段内容 ' isblur (值为1或0) ----是否模糊匹配 '返回值:false不存在,true存在 '**************************************************** '**************************************************** '函数名:GetNum(conn, table, fieldname, resulttype, args) '作 用:检测某个表某个字段的数量或最大值或最小值 '参 数:conn---连接对象table ----表名 ' fieldname ----字段名 ' resulttype ----还回结果(count/max/min) ' args ----附加参加(order by ...) '返回值:数值 '**************************************************** '**************************************************** '函数:UpdateValue(conn, table, fieldname, fieldtype, fieldvalue, id, url) '作 用:更新表某字段某内容的值 '参 数:conn--------数据库连接对象 'table ----表名 ' fieldname ----字段名 ' fieldtype ----字段数据类型 ' fieldvalue ----更新后的值 ' id ----id ' url -------更新后转向地址 '返回值:无 '**************************************************** '---------------服务端信息和操作----------------------- '**************************************************** '函数名:GetFolderSize(Folderpath) '作 用:计算某个文件夹的大小 '参 数:FileName ----文件夹路径及文件夹名称 '返回值:数值 '**************************************************** '**************************************************** '函数名:GetFileSize(FileName) '作 用:计算某个文件的大小 '参 数:FileName ----文件路径及文件名 '返回值:数值 '**************************************************** '**************************************************** '函数名:IsObjInstalled(strClassString) '作 用:检查组件是否安装 '参 数:strClassString ----组件名称 '返回值:false不存在,true存在 '**************************************************** '**************************************************** '函数名:SendMail(MailServerAddress, AddRecipient, Subject, Body, Sender, MailFrom) '作 用:用Jmail组件发送邮件 '参 数:ServerAddress ----服务器地址 ' AddRecipient ----收信人地址 ' Subject ----主题 ' Body ----信件内容 ' Sender ----发信人地址 '**************************************************** '**************************************************** '函数名:ResponseCookies(Key, Value, Expires) '作 用:写入COOKIES '参 数:Key ----cookie名 ' value ----cookie值 ' expires ---- cookie过期时间 '**************************************************** '-----------------系列格式化------------------------ '**************************************************** '函数名:FormatSize(dsize) '作 用:大小格式化 '参 数:size ----要格式化的大小 '**************************************************** '**************************************************** '函数名:FormatTime(DateTime, Format) '作 用:时间格式化 '参 数:DateTime ----要格式化的时间 ' Format ----格式的形式 '**************************************************** '----------------------杂项--------------------- '**************************************************** '函数名:Zodiac(birthday) '作 用:取得生消 '参 数:birthday ----生日 '**************************************************** '**************************************************** '函数名:Constellation(birthday) '作 用:取得星座 '参 数:birthday ----生日 '****************************************************
由本人第一次尝试制作的录像视频教程,由于电脑速度较慢,播放时间较慢,请谅解。 本录像讲解最基础的VB封装ASP代码生成DLL的制作教程,适合初级学习者参考。也是本人学习VB制作ASP组件的第一个尝试,录像基本成功。 用vb编写asp组件(dll)示例 下面,将演示如何使用vb制作aspdll组件... 1. 启动你的vb,选择activex dll图标,然后在点击菜单的工程>>引用,接 着在弹出的"引用"窗口从选择 microsoft active server pages object library. 2. 给工程和类重命名,在asp调用时,就全靠它了^_^!我们的工程名改 为aspdll,类名为demo.在asp调用的方法是: set objreference = server.createobject("工程名.类名") 本例调用的相应代码如下: set objreference = server.createobject("aspdll.demo") 调用的方法和一般常见的,比如fso等组件的方法一模一样. 心动了吧,呵呵,下面我们继续.... 3. 接着,我们开始编写代码,打开我们刚才新建工程类窗口,第一步,先声 明我们要用到的变量.主要是在vb声明替代asp几大对象的变量名,定义这 asp的几大对象后,我们就可以像在asp环境调用类似request,server等 这样的几大对象了.(声明的变量名完全可以和asp对象名一样)代码如下: '********************************************** private mys criptingcontext as s criptingcontext private myapplication as application private myrequest as request private myresponse as response private myserver as server private mysession as session '********************************************** 4. 声明完变量后,我们必须在类写onstartpage子函数.本函数的作用是 当用户访问一个带有本组件asp文件时,iis就会把s criptingcontext传 送给我们vb组件对象.这个s criptingcontext包括了全部的asp方法和属性 .这样,就使得我们有能力访问所有asp的对象.代码如下: '***************************************************************** public sub onstartpage(passeds criptingcontext as s criptingcontext) set mys criptingcontext = passeds criptingcontext set myapplication = mys criptingcontext.application set myrequest = mys criptingcontext.request set myresponse = mys criptingcontext.response set myserver = mys criptingcontext.server set mysession = mys criptingcontext.session end sub '***************************************************************** 通过上面的函数,我们在asp调用组件后,上面的几大对象就完全可以 像平时我们在asp使用一样了,举个例子: 在asp实现接收提交的表单值并输出屏幕: <% formvalue=request.form("username") response.write ("你提交的用户名是"&myformvalue&",欢迎您!") %> 在vb实现方法是: formvalue=myrequest.form("username") myresponse.write ("你提交的用户名是"&myformvalue&",欢迎您!") 5. 相对应于onstartpage函数,我们还要编写一个关闭onstartpage对象 的onendpage函数,代码如下: '********************************* public sub onendpage() set mys criptingcontext = nothing set myapplication = nothing set myrequest = nothing set myresponse = nothing set myserver = nothing set mysession = nothing end sub '******************************** 6.通过编写上面的代码,我们在vb编写asp组件实例的环境已经具备了, 下面,我就尝试写两个与asp基本相类似的函数,也就是说,关键部位就在 这里了,你完全可以把你所有的asp源码封装在这里... 先写个最简单的输出屏幕信息函数: '******************************************** public sub welcomeinfo() myresponse.write ("阿里西西_web开发,欢迎访www.alixixi.com!") end sub '******************************************** 再写个带参数传递及显示now()现在时间的函数: '********************************** public sub setinfo(content as string) myresponse.write content & "
" myresponse.write "现在的时间是:" & now() end sub '********************************** 通过上面的asp代码实例,你会发现其实这和asp源码基本没有区别^_^ 7. 好了,整个类就编写完了,我们开始打包封装成dll.我们先保存工程, 这里我们保存到e:\vbdll,接着选择菜单上的文件>>生成aspdll.dll,很 快的dll组件就封装并生成完毕了. 8. 生成dll文件后,我们开始调试和使用.在系统运行栏输入cmd,进入dos 命令行状态,我们要注册刚才生成的dll组件,注册方法是可以直接输入 regsvr32 e:\vbdll\aspdll.dll ,为了安装方便,你同时可以写个批处理 文件,这里不一一举例了...好,注册成功! 9.注册dll组件后,我们针对刚才的组件,按照上面介绍过的方法编写一 个asp文件来调试.代码如下: <% set redll = server.createobject("aspdll.demo") redll.welcomeinfo response.write "
" redll.setinfo("传递参数到服务器组件,并返回值及当前日期now()!") response.write "
" set redll = nothing %> 在iis打开此文件,屏幕显示:

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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