使用Delphi编写组件封装asp代码

2018-09-06 10:32

阅读:873

   在ASP程序中版权限制是直是个头疼问题,目前最常见的方法就是使用组件封装代码以达到加密的效果。我在网上搜索了一下,Delphi编写asp组件的文章一共就几篇,所以今天写了这篇Delphi编写asp组件的基础文章,希望对新手有点帮助。

   开始吧,让我们一起编写一个”hello world!”的示例。我这里用的是Delphi 7。

   1.文件->新建->其他->ActiveX->ActiveX Library,然后保存成showdll.dpr



  2.再次,文件->新建->其他->ActiveX->ActiveX Server Object,填写CoClassName:showhello,其他不变,点击ok。

  
3.现在开始写程序,先添加一个方法。选择Ishowhello->右键->New->Method,填写方法名称:sayworld。


4.现在开始写程序,将Unit1保存成show.pas,然后添加方法sayworld的代码

  
show.pas的全部代码如下:

  unit show;

  {$WARN SYMBOL_PLATFORM OFF}

  interface

  uses

   ComObj, ActiveX, AspTlb, showdll_TLB, StdVcl;

  type

   Tshowhello = class(TASPObject, Ishowhello)

   protected

   procedure OnEndPage; safecall;

   procedure OnStartPage(const AScriptingContext: IUnknown); safecall;

   procedure sayworld; safecall; //sayworld方法

   end;

  implementation

  uses ComServ;

  procedure Tshowhello.OnEndPage;

  begin

   inherited OnEndPage;

  end;

  procedure Tshowhello.OnStartPage(const AScriptingContext: IUnknown);

  begin

   inherited OnStartPage(AScriptingContext);

  end;

  procedure Tshowhello.sayworld(); //定义sayworld方法

  begin

  response.Write(Hello world); //里边的语法和asp一样的写法了,就在这里封装了。

  end;

  initialization

   TAutoObjectFactory.Create(ComServer, Tshowhello, Class_showhello,

   ciMultiInstance, tmApartment);

  end.

  4.点击运行,编译成dll, 并自动注册了。这时候会提示:


让你放到web服务器上运行,好了现在写个asp文件调用一下吧,注意Delphi已经生成了一个asp文件,我们改一下调用的方法就可以了。


修改后的showhello.asp代码如下:

  <HTML>

  <BODY>

  <TITLE> Testing Delphi ASP </TITLE>

  <CENTER>

  <H3> You should see the results of your Delphi Active Server method below </H3>

  </CENTER>

  <HR>

  <% Set DelphiASPObj = Server.CreateObject(showdll.showhello)

   DelphiASPObj.sayworld

  %>

  <HR>

  </BODY>

  </HTML>

  在iis的站点下运行看看效果吧:

  
5.其他:

  Delphi编写的组件,用win2000的组件服务注册后可以看该组件的接口的方法


6.还有asp页面和组件间传递参数,其实就是给调用的方法(函数)传递参数,注意Delphi里定义的时候要和vbs 的数据类型一致。这些还是大家多实践吧。这里主要是想大家学会封装asp核心代码的方法,起个抛砖引玉的作用。

  写这些,文字不多,就是截图麻烦了点。水平有限,错误的地方,大家拍砖,拍的轻点啊!!!!

  技术交流永无止境


评论


亲,登录后才可以留言!