请教高手,自制的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 文件?
...全文
103 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打开此文件,屏幕显示:
AspJpeg  1、AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,网络上对其进行详细和深入介绍的文文章并不多,即使有一般也只是牵涉到图片缩略图和图片水印,这与其为英文版本有着密切的关系。   AspJpeg可以使用很少的代码在您的ASP/ASP.Net应用程序上动态的创建高质量的缩略图象,支持的图象格式有:JPEG, GIF, BMP, TIFF, PNG。   AspJpeg主要可以做到:生成缩略图片、生成水印图片、图片合并、图片切割、数据库支持、安全码技术   ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出图片的缩略图和为图片加上水印功能。   安装SN:09268-26217-40710   2、AspJpeg功能摘要   支持JPEG, GIF, BMP, TIFF 和 PNG 格式图片. 输出格式始终为 JPEG   源图片可以来源于磁盘、内存、或者记录集(数据库)   缩略图片可以保存到磁盘、内存、或者HTTP流   支持三种更改大小方式: nearest-neighbor, bilinear, and bicubic.   可以在图片之上添加图片或者文字.   支持画画   支持复制,反转,旋转,锐化,灰度调节.   可以调节压缩比率,以得到最佳输出效果和大小.   从Jpeg图片抽取EXIF 和 IPTC数据.   CMYK-RGB转换   Read/write access to individual pixels of an image. (从图象对任意象素进行读/写存取。)   3、AspJpeg系统需求   Windows 95/98/NT/2000/XP/2003, and   IIS 4.0+ and ASP/ASP.NET, or   Visual Basic 5.0+, or   Visual C++ 5.0+, or   any development environment supporting COM.   4、AspJpeg安装   全新安装:   在AspJpeg安装过程输入序列号即可,如果安装位置磁盘格式为NTFS,则可能出现访问权限问题,需手工设置安装目录对Everyone有访问权限。   更新安装:   如果之前有装过其它版本的AspJpeg组件,则需要先卸载原来的组件,再进行新版本的安装。   先停止IIS   Net Stop iisadmin /y   卸载旧版组件   regsvr32 /u Path/aspjpeg.dl(Path为安装路径)   重启IIS   Net Start w3svc   然后再进行全新安装或复制AspJpeg.dll文件到安装目录进行手工安装:   regsvr32 Path/aspjpeg.dll(Path为安装路径)   如果在正常安装过程没有输入序列号或手工安装则必须在注册加入以下项,为方便起见您可以直接将以下代码保存为.reg文档并导入注册表:   Windows Registry Editor Version 5.00   [HKEY_LOCAL_MACHINE\SOFTWARE\Persits Software\AspUpload3\RegKey]   @="21764-40765-60456"   5、如何创建一个AspJpeg实例?   Set Jpeg = Server.CreateObject("Persits.Jpeg")   6、如何查看到期时间(是否注册成功)?   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Response.Write Jpeg.Expires   注册成功则到期时间为:9999-9-9   否则为:安装日期加1个月期限   7、如何用AspJpeg组件生成图片缩略图?   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg") '创建实例   Path = Server.MapPath("../images/apple.jpg") '处理图片路径   Jpeg.Open Path '打开图片   '调整宽度和高度为原来的50%   Jpeg.Width = Jpeg.OriginalWidth / 2   Jpeg.Height = Jpeg.OriginalHeight / 2   Jpeg.Save Server.MapPath("apple_small.jpg") '保存图片到磁盘   Jpeg.Close:Set Jpeg = Nothing   %>   8、如何用AspJpeg组件生成图片水印?   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Jpeg.Open Server.MapPath("images/dodge_viper.jpg")   开始写文字   Jpeg.Canvas.Font.Color = &000000'' red 颜色   Jpeg.Canvas.Font.Family = "Courier New" 字体   Jpeg.Canvas.Font.Bold = True 是否加粗   Jpeg.Canvas.Print 10, 10, "Copyright (c) XYZ, Inc."   打印坐标x 打印坐标y 需要打印的字符   以下是对图片进行边框处理   Jpeg.Canvas.Pen.Color = &H000000'' black 颜色   Jpeg.Canvas.Pen.Width = 2 画笔宽度   Jpeg.Canvas.Brush.Solid = False 是否加粗处理   Jpeg.Canvas.Bar left, top, right, bottom ' 左,上,右,下   Jpeg.Save Server.MapPath("images/dodge_viper_framed.jpg") 保存   %>   9、如何用AspJpeg组件进行图片合并?   AspJpeg 1.3+ enables you to place images on top of each other via the method DrawImage. To use this method, you must create two instances of the AspJpeg objects and populate both of them with images via calls to Open (or OpenBinary). When calling Canvas.DrawImage, the 2nd instance of AspJpeg is passed as an argument to this method, along with the X and Y offsets (in pixels):   使用该方法,您必需创建两个AspJpeg实例对象   <%   Set Jpeg1 = Server.CreateObject("Persits.Jpeg")   Set Jpeg2 = Server.CreateObject("Persits.Jpeg")   Jpeg1.Open Server.MapPath("t.jpg")   Jpeg2.Open Server.MapPath("t1.jpg")   Jpeg1.Canvas.DrawImage 10, 10, Jpeg2 ' optional arguments omitted   jpeg1.save Server.mappath("tt.jpg")   %>   10、如何用AspJpeg组件进行图片切割?   AspJpeg 1.1+ is also capable of cutting off edges from, or cropping, the resultant thumbnails via the method Crop(x0, y0, x1, y1). The size of the cropped image is specified by the coordinates of the upper-left and lower-right corners within the resultant thumbnail, not the original large image.   <%   Set Jpeg = Server.CreateObject("Persits.Jpeg")   Jpeg.Open Server.MapPath("t.jpg")   jpeg.Crop 20, 30, jpeg.Width - 20, jpeg.Height - 10   jpeg.save Server.mappath("tt.jpg")   Response.write("")   %>   11、如何用AspJpeg组件创建安全码?   创建安全码原理上和创建水印差不多。   <%   function make_randomize(max_len,w_n) 'max_len 生成长度,w_n:0 可能包含字母,1:只为数字   randomize   for intcounter=1 to max_len   whatnext=int((1-0+1)*rnd+w_n)   if whatnext=0 then   upper=122   lower=97   else   upper=57   lower=48   end if   strnewpass=strnewpass & chr(int((upper-lower+1)*rnd)+lower)   next   make_randomize=strnewpass   end function   '生成安全码的图片。   random_num=make_randomize(4,1) ''生成4位数字的安全码   session("random_num")=random_num '为么调用session,没有session的安全码是完全没有意义的。呵呵 .   Set Jpeg = Server.CreateObject("Persits.Jpeg") '调用组件   Jpeg.Open Server.MapPath("t.jpg") '打开准备的图片   Jpeg.Canvas.Font.Color = &HFFFFFF   Jpeg.Canvas.Font.Family = "Arial Black"   Jpeg.Canvas.Font.Bold = false   Jpeg.Canvas.PrintText 0, -2, random_num   jpeg.save Server.MapPath("tt.jpg") '保存   %>      12、如何让AspJpeg组件支援数据库?   图片存进数据库只能以二进制数据保存,这里即利用AspJpeg的Binary方法,下面以两个AspJpeg用户手册上的代码为例,具体请参考AspJpeg用户手册:   Opening Images from Memory   <% ' Using ADO, open database with an image blob   strConnect = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/aspjpeg.mdb")   Set rs = Server.CreateObject("adodb.recordset")   SQL = "select image_blob from images2 where id = " & Request("id")   rs.Open SQL, strConnect, 1, 3   Set Jpeg = Server.CreateObject("Persits.Jpeg")   ' Open image directly from recordset   Jpeg.OpenBinary rs("image_blob").Value   ' Resize   jpeg.Width = Request("Width")   ' Set new height, preserve original aspect ratio   jpeg.Height = jpeg.OriginalHeight * jpeg.Width / jpeg.OriginalWidth   Jpeg.SendBinary   rs.Close   %>   Output to Memory   <%   ...   Set rs = Server.CreateObject("adodb.recordset")   rs.Open "images", strConnect, 1, 3   rs.AddNew   rs("image_blob").Value = Jpeg.Binary   rs.Update   ...   %>   更多方法介绍:   Canvas.Line(Left, Top, Right, Bottom)   画一条直线   Canvas.Ellipse(Left, Top, Right, Bottom)   画出一个椭圆   Canvas.Circle(X, Y, Radius)   画出一个圆   Canvas.Bar(Left, Top, Right, Bottom)   画出一个长方形,上面有代码介绍了   Canvas.Font.ShadowColor   文字阴影颜色   Canvas.Font.ShadowXOffset As Long   阴影X坐标设定   Canvas.Font.ShadowYOffset As Long   Y坐标设定   Canvas.Font.BkMode As String   文字背景

4,354

社区成员

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

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