求小说 女官韵事 完结 百度云百度云 (要钱的别来,一本小说而已,可考虑提高悬赏)

WEB开发教程_编程基础教程_源码爱好者
您的当前位置:
& WEB开发教程_编程基础教程(TOP200)
分类及名称阅读次数君,已阅读到文档的结尾了呢~~
Delphi编写组件扩展ASP的功能,delphi 组件编写,delphi组件参考大全,delpb40hi调用com组件,delphi ics组件,delphi com组件,delphi 组件开发,delphi 自定义组件,delphi 7组件应用实例,delphi 组件
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Delphi编写组件扩展ASP的功能
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口接口二次开发文档_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
接口二次开发文档
上传于||文档简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩29页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了
如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了
发布时间: 12:59:56
编辑:www.fx114.net
本篇文章主要介绍了"如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了
0",主要涉及到如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了
0方面的内容,对于如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了
0感兴趣的同学可以参考一下。
如何使用DELPHI编写可以在ASP中调用的组件,把详情写一写,谢了。给分了去看李维的书吧http://www.7feet.net/newworm/delphi2.htmASP中的ActiveX服务器组件为标准的Automation&ActiveX组件,只要使用由ASP提供的接口和遵守ASP有关规则便可。Delphi&4.0作为一种高效、快速、强大的开发语言,为开发COM组件提供了很强的功能,但不知道什么原因,很少有人运用Delphi编写ASP中的ActiveX服务器组件。本文意在通过举例介绍如何运用Delphi编写ASP中的ActiveX&组件。
  通过以下步骤创建ASP中的ActiveX&服务器组件:
  1.创建一个ActiveX&library工程
  打开Delphi编辑器,选择选单中的File/New,在New&Item中选择&the&ActiveX&项中的ActiveX&Library选项,Delphi将自动生成以下代码:
  library&Project1;
  exports
  &DllGetClassObject,
  &DllCanUnloadNow,
  &DllRegisterServer,
  &DllUnregisterS
  {$R&*.RES}
  这是Delphi编译COM组件时必须的函数,DllGetClassObject函数负责将输入调用从COM库转换到相应的类工厂中;DllCanUnloadNow函数是通知OLE引擎如果没有程序引用将自动释放内存;DllRegisterServer与DllUnregisterServer函数用来登记COM服务器。总之Delphi已经为你做好了一切辅助工作,你只需用心编写主要功能模块便可。
  2.在该工程中新增一个automation对象
  选择Delphi编辑器选单中的File/New,在New&Item中选择ActiveX&项中的Automation&Object选项,系统将显示the&Automation&Object导向,在物件名称中输入TestObject和选择Multiple&Instance选项,按OK键后系统将弹出类型编辑器,其实这时系统已经生成了两个单元(Project1—TLB.pas与unit1.pas),unit1.pas中有如下代码:
  initialization
  &TAutoObjectFactory.Create(ComServer,&TTestObject,
  Class—TestObject,&ciMultiInstance);
  这是告诉类工厂物件执行的方式与位置。
  3.增加组件中的属性与方法
  在类型编辑器中单击工具栏中的方法按钮增加以下方法:
  OnStartPage(unk:IUnknown)
  OnEndPage.
  注意在增加方法OnStartPage时,在Parameters项中增加参数unk,类型为Iunknown,增加三项方法后,在类型编辑器中按Refrash键,Unit1.pas中将会出现三个函数,在每个函数下写如下程序:
  procedure&Ttestobject.OnStartPage(unk:&IUnknown);
  &begin
  &m_scriptContext&:=&unk&as&IScriptingC
  procedure&Ttestobject.OnEndP
  &begin
  &m_scriptContext&:=&
  procedure&Ttestobject.
 &m—scriptContext.Response.Write(′ActiveX&Test&For&Delphi′);
  当IIS激活一个ActiveX组件时它会自动寻找组件中是否有OnStartPage与OnEndPage方法,如果存在,服务器将在开启本ASP页时自动执行OnStartPage方法和当本ASP页所有脚本执行完毕后自动执行OnEndPage方法。
  其中mscriptContext&与IScriptingContext是ASP中负责将ASP转换成HTML格式必不可少的变量与类型,因此必须将Unit1.pas文件中的Uses加上ASPTypeLibrary—TLB变成
  unit&unit1;
  interface
  &uses&ComObj,&ActiveX,&Delphi_TLB,&ASPTypeLibrary—TLB,&SysU
  ASPTypeLibrary—TLB.Pas文件可以通过类型库引入取得,打开Delphi编辑器中的选单Project/import&type&library&项,选择the&Microsoft&Active&Server&Pages&Type&library,按OK,Delphi便会自动生成一个ASPTypeLibrary_TLB.Pas。
  4.编译与注册
  选择Delphi编辑器中的选单Project/Compile&项编译文件,然后选择Run/Register&ActiveX&Server对Project1.dll文件注册。
  5.在ASP文件中运用Project1.dll
  在ASP文件中加入以下文字:
  &Set&TestASP&=&Server.CreateObject(Project1.TestObject)
  &TestASP.Test
  通过上面的例子,我们可以发现用Delphi编写ASP中的ActiveX服务器组件是十分容易的,加上Delphi丰富的组件与强大的功能,使我们相信运用Delphi编写特殊的ASP服务器组件,如数据库、服务器上各种信息与资源访问等,都会十分方便。
--------------------------------------------------------------------------------
(作者:孙航东 日&10:01)
  众所周知,asp技术是我们在以internet/intranet为平台的web程序的主要技术,在asp应用程序中我们一般使用vbscripts和javascripts两种脚本语言。但是脚本语言是一种非编译的语言,其所开发的web程序存在先天的安全性、执行效率扩张性方面的问题,因此我们一般在开发web系统时用高级语言编写asp执行体,然后用脚本语言作为连接代码去调用asp执行体执行存取。在这方面由于asp技术是微软推出的,因此我们一般利用vb或vc,那么delphi程序员又如何实现呢?
  在这方面笔者最近通过inrpisre的资料,实现了在delphi环境中实现asp技术的web编程,现以一个介绍如下:
  1、在delphi环境中建立一个新的acdivex&dll项目project1,然后通过delphi的active&server&object建立一个asp对象,在他的coclassname中填入所建立对象的名字myaspobject.
  2、通过type&library为刚建立的myaspobject对象建立一个将要被脚本语言调用的方法myasprequest.
  3、由于刚才所建立的asp对象是从taspobject继承的,应此我们在方法建立中可以直接使用asp对象,现在为我们建立的asp对象填写代码如下:
  produce&tmyaspobject.
  &repsonse.write('&p&您的姓名是:');
  &repsonse.write(request.form.item['name']);
  &repsonse.write('&/p&');//从所要建立的网页中读出用户名//
  &repsonse.write('&p&您的工作是:');
  &repsonse.write(request.form.item['work']);
  &repsonse.write('&/p&');//从所要建立的网页中读出用户工作//
  &repsonse.write('&p&您用的开发工具:');
  &if(request.form.item['delphi'].count&0)
  &repsonse.write('delphi');
  &if(request.form.item['bcb'].count&0)
  &repsonse.write('c++&builder');//判断用户所用的开发工具//
  &repsonse.write('&/p&');
  &repsonse.write('&p&您的身份:');
  &repsonse.write(request.form.item['identity']);
  &repsonse.write('&/p&');//读出用户的身份//
  4、对程序进行编译并在delphi中进行注册为pmyaspobject.dll文件。
  5、编写用于连接的asp脚本语言文件myasp.asp
  &=jscript&%&
  &html&
  &body&
  &title&这是一个用delphi建立的asp对象&/title&
  &center&&h3&你填的内容如下&/h3&&/center&
myasp=server.createobject(pmyaspobject.myaspobject);
  &//生成连接对象//
  &myasp.myasprequest();//调用自己定义的asp对象//
  &/body&
  &/html&
  6、建立用于显示的网页myhtm.htm
  &form&action='localhost/shd/myasp.asp'&method='post"&
  &h1&align='center"&请选择&/h1&
  &p&姓名:&input&type='text'&size=33&name="name"&&/p&
  &p&工作:&input&type='text'&size=33&name="work"&&/p&
  &p&开发工具:&input&type='checkbox'&name='delphi'&value="on"&delphi
  &input&type='checkbox'name='bcb'value="on"&c++&builder&/p&
  &p&您的身份:&/p&
  &p&&select&name="identity"&size="1"&
  &&option&学生&/option&
  &&option&技术人员&/option&
  &&/select&&/p&
  &p&&input&type="submit"&name="mysubmit"&value="递交"&
  &/form&
  7、然后把myhtm.htm和myasp.asp放在个人的web服务器中的shd目录下即可浏览测试。
这个DLL可以注册到MTS管理器中,每次调试不用重启,只需在MTS管理器中右键关机(NT)或关闭(Win2000)/show_data.asp?tid=1334.cn/c//4790.html2002.第二期《电脑编程技巧与维护》36页&“delphi编写组件扩展asp的功能”文章http://mental.top263.net/mentals/tech/delphi/d5_asp.htm
用&Delphi&5&编写&ASP&对象&&
&&&&Delphi&5&一项重要的新增功能便是可以编写供&ASP&使用的&ActiveX&组件,&而&ASP&也正是因为与&ActiveX&组件的结合而成为一项极有竞争力的服务端脚本技术,包括&ASP&用于访问&数据库的&ADO&组件也是,此外还有一些其它的&ASP&组件如:&AdRotator、&Counter&等也都是。很多人&因为&PHP&版本更新快,新功能不断增加,较之&ASP&几年更新一次更适合于&Internet&上日新月异的变化&并更有优势,我在很多&PHP&的书中都看到这种说法,虽然这是事实,但他们忽略了&ASP&优秀的可扩展性,&ActiveX/COM&已经成为&Windows&平台下最标准的扩展规范,你可以通过为&ASP&编写&ActiveX&组件来增加&几乎是任何功能,而&PHP&就没有如此方便的扩展功能,当然&PHP&也有它的优势,首先便是功能齐全,几乎&所有在&Internet&应用中所要用到的功能,&PHP&均有提供,从&FTP&到&Socket&一应俱全。我不是要&在这里说明&ASP&和&PHP&的优劣,我只是想对某些作者的偏见发表一些自已的看法,当然这种错误我也在犯,&比如我一向就很讨厌&VB&,对此我也从不否认,应该说明的是,理论上&VB&也可以写出任何程序。&
&&&&扯远了,回到&Active&Server&Object&上来,虽然这是&Delphi&5&的一项&重要的新增功能,但是"Delphi&5&Developer's&Guide"对此的说明只有区区&5&页&(见&Chapter&49&Creating&an&Active&Server&Page&),我仔细研究了这&5&页的内容,用&Delphi&5&实现&这一功能可算是相当简单,这&5&页的内容也基本上将&Active&Server&Object&的方方面面都说到了,但由于&没有实例以助理解,并且在许多重要问题上常常是一句带过,没有更详细的说明,实际编程中会碰到不少困难,&当然,如果你熟悉用&Delphi&编写&ActiveX&的技术则另当别论。正好我有一朋友要一个用于发送&E-mail&的&ASP&组件,下面我就结合这个程序的编写来说明一下用&Delphi&5&编写&Active&Server&Object&的方法,&为简单起见,程序使用了&NetMaster&的&TNMSMTP&控件,这虽有违我们不用无源程序控件的说法,但不得已&而为之,如果不用就太麻烦了。另,如果你是一位用&ActiveX&的高手那我就是班门弄斧了。&
&&&&1.&建立工程:建议新建一个&ActiveX&Lib&,这是一个&DLL&,或称之为&in-process&组件,最好不要建立&Application&,即&EXE&,或叫&out-of-process&组件,虽然理论上可以,&但实际中会遇到许多问题,这在"Delphi&5&DG"中也有说明,当然用&DLL&也会有一些麻烦,后面会谈到这一点;&建立工程完成后给工程起个名如&AxSrvObj&并保存;&
&&&&2.&新建&Active&Server&Object&:对于将用于&IIS4/PWS4&的&ASP&组件,建议除&输入对象名&CoClassName&外,其它均保持不变,即&Instancing&为&Multiple&Instance&,Threading&Model&为&Apartment&,&Active&Server&Type&为&Page-Level&event&menthods(OnStartPage/OnEndPage)(注:若&用于&IIS&5&此项可以为&Object&Context&),&Options&选中将产生一个&ASP&页的模版,可作测试用;现设&对象名为:SendMail&,单元文件保存为&SendMailImpl.pas&,ASP&页保存为&test.asp&;&
&&&&3.&按&Ctrl-F9&编译,再选&Run-Register&ActiveX&Server&注册:虽然此程序还&未写,但建议先编译注册;&
&&&&4.&定义接口:在&Type&Library&Editor&中的&ISendMail&下增加&Connect、&Disconnect&和&SendMail&三个方法,及&FromAddress&、&FromName&和&ReplyTo&三个只写属性,类型均为&BSTR&;&Connect&有三个参数:&aHost:BSTR,&aPort:long,&aUserID:BSTR&(参数名前的&"a"&表示&argument"参数"&,这是我个人的习惯),分别表示&SMTP&主机,SMTP&端口(默认为&25)和&SMTP&用户名&(仅用于需要授权的&SMTP&服务器,通常为空即可);&SendMail&有六个参数:&aToAddress:BSTR,&aSubject:BSTR,&aBody:BSTR,&aAttachments:BSTR,&aToCC:BSTR,&aToBCC:BSTR,分别表示收件人信箱,&主题,信件内容,附件文件名,抄送,暗送,它们的用法见后面&test.asp&中的说明;&
&&&&5.&实现接口:定义完接口后,点&Type&Library&Editor&中的&Refresh&刷新,&在&SendMailImpl.pas&单元中产生相应的接口定义,在各定义中输入下列代码:&
--------------------------------------------------------------------------------
//&&在&TSendMail&的定义中加入
&&&&smtp&:&TNMSMTP;
//&&加在&OnEndPage&的&inherited&一句前
&&&&smtp.A&//&中止未完的&SMTP&操作
&&&&smtp.F&&//&删除&SMTP&对象
//&&加在&OnStartPage&的&inherited&一句后
&&&&smtp&:=&TNMSMTP.Create(&Nil&);&//&创建&SMTP&对象
//&&Connect&方法
&&&&With&smtp&Do
&&&&&&&&Host&:=&aH
&&&&&&&&Port&:=&aP
&&&&&&&&UserID&:=&aUserID;
&&&&&&&&C&//&连接到&SMTP&SERVER
//&&Disconnect&方法
&&&&smtp.D&//&断开&SMTP&连接
//&&SendMail&方法
&&&&With&smtp.PostMessage&Do
&&&&Begin&//&设置邮件内容
&&&&&&&&maText&:=&aToA
&&&&&&&&Subject&:=&aS
&&&&&&&&Body.Text&:=&aB
&&&&&&&&maText&:=&aA
&&&&&&&&maText&:=&aToCC;
&&&&&&&&maText&:=&aToBCC;
&&&&smtp.Charset&:=&'gb2312';&//&&设置语言,这是一个未公开的属性,在帮助中是找不到的,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&&这就是我们为什么尽可能不用没有源程序的控件的原因之一
&&&&smtp.SendM&//&发送邮件
//&&Set_FromAddress&方法,设置&FromAddress&属性
&&&&smtp.PostMessage.FromAddress&:=&V
//&&Set_FromName&方法,设置&FromName&属性
&&&&smtp.PostMessage.FromName&:=&V
//&&Set_ReplyTo&方法,设置&ReplyTo&属性
&&&&smtp.PostMessage.ReplyTo&:=&V
--------------------------------------------------------------------------------
程序到这就算基本上写完了,怎么样,够简单吧;&
&&&&6.&使用:将&AxSrvObj.dll&所在的目录映射为虚拟目录,并设为可执行权限;&或将文件复制到其它有执行权限的虚拟路径中,如&C:\InetPub\Scripts\&,并用&RegSvr32/TRegSvr&手工&重新注册组件。具体用法见下面的&test.asp&代码,用的是本地测试用的一个&Mail&Server&:&
--------------------------------------------------------------------------------
&=VBScript%&
&TITLE&&Testing&Delphi&ASP&&/TITLE&
&H3&&You&should&see&the&results&of&your&Delphi&Active&Server&method&below&&/H3&
&&&Set&SendMail&=&Server.CreateObject(&"AxSrvObj.SendMail"&)
&&&SendMail.Connect&"localhost",&25,&""
&&&SendMail.FromAddress&=&""
&&&SendMail.FromName&=&"Test"
&&&SendMail.ReplyTo&=&""
&&&SendMail.SendMail&"",&"中文",&"中文测试",&"test.zip",&"",&""
&&&SendMail.Disconnect&'&理论上这两句可以不加,但最好还是加上,保险一些
&&&Set&SendMail&=&Nothing
--------------------------------------------------------------------------------
&&&&对这个&ASP&的说明:&
&&&&SendMail&组件的方法:&
&&&&1.&Connect(&string&aHost,&int&aPort,&string&aUserID&);&
连接到&SMTP&Server&,&aHost&主机名或地址,&aPort&端口号,默认为&25&,aUserID&仅用于要授权的&SMTP&Server。&
断开连接。&
&&&&3.SendMail(&string&aToAddress,&aSubject,&aBody,&aAttachments,&aToCC,&aToBCC&);&
发送。&aToAddress&收件人地址,可以是用逗号或空格分开的多个收件人,aSubject&主题,&aBody&内容,以回车分行,&aAttachments&附件文件名,以逗号或空格分开的多个文件名,路径在本控件所在的服务器(即&WEB&SERVER&中),&aToCC&抄送,以逗号或空格分开,aToBCC&暗送,以逗号或空格分开。&
&&&&SendMail&组件的属性:&
&&&&1.FromAddress&:&发件人地址&
&&&&2.FromName&:&发件人名&
&&&&3.ReplyTo&:&回复地址&
&&&&注意:为简单起见,本组件未作任何错误处理,小心不要连接错误的服务器或端口号等,或者你也可以自已加入。&
&&&&当然,在最顺利的情况下,仿照上述步骤即可成功建立一个&Active&Server&Object&,&谁也都希望能如此,但实际上往往会碰上各种问题,调试是一道必不可少的工作,那么&ASO&如何调试?关于这一点,&我建议你去看一看&C.Calvert&的书&那里有关于调试&ActiveX&的一些说明&(我看的是那本&BCB&3&的书,不过书中这部分关于&ActiveX&的内容好像不是&C.Calvert&写的);另外,因为这也是一种&DLL&,可以按调试&DLL&的方法来调试,这种方法可能会比&C.Calvert&书中所说的几种方法好用一些,即在&Run-Parameters...&中&设置&Host&Application&为&IIS/PWS&,并设置相应参数如下:&
IIS:&Host&Application="C:\Winnt\System32\inetsrv\inetinfo.exe";
parameters="-e&w3svc";&
PWS:&Host&Application="C:\Windows\System\inetsrv\pws.exe";
parameters="-w3svc";&
(以上内容引自某书,不过后来在试用PWS4.0&时,上述方法不行,曾试过不用&Run-Parameters&,&而用&Run-Attach&to&process...&的方法,即在此对话框中选中&INETINFO.EXE&,但问题更多,&最后试着改用:&
PWS4.0:&Host&Application="C:\Windows\System\inetsrv\inetinfo.exe";
parameters="-e&w3svc";&
,调试结束后用&Run|Program&Reset&退出即可)&最后在程序中放上断点后运行即可,写过&ISAPI&的人就知道,这是调试&ISAPI&的方法。另外一个要注意的是:因为&DLL&是&随宿主程序的终止而终止的,所以一
本文标题:
本页链接:

我要回帖

更多关于 女官韵事百度云228 的文章

 

随机推荐