现在的位置: 首页 > 综合 > 正文

VS.net封装asp为Dll

2012年09月11日 ⁄ 综合 ⁄ 共 2155字 ⁄ 字号 评论关闭

 

ASP写程序大家都知道,源代码太容易被人看到了,要是能像.NET那样生成DLL就好了,便上网去搜索,可是没有找到有用的东西,只找到了一篇《在ASP中调用基于.Net开发的 DLL》的文章,确定了.NET可以生成DLL让ASP调用.仔细研究了下,得到了结果,好了,费话不说.先做吧!
    首先打开Microsoft Visual Studio .NET 2003,点击文件,再点新建项目,Visual Basic 项目中的类库,将类库命名为dujian4,再点视图中的解决方案资源管理器,将class4.vb重命名为dujian4.vb,再将dujian4.vb中的Public Class class4改为Public class dujian4,将下面的代码加在Public Class dujian4与End Class之间

Public Function getfilename(ByVal d)
       Dim datetime
       datetime = CStr(d)
       Dim date1, time1
       date1 = Split(d, " ")(0)
       time1 = Split(d, " ")(1)
       getfilename = Year(date1) & Month(date1) & Day(date1) & Hour(time1) & Minute(time1) & Second(time1)
End Function
Public Function gettimefilename(ByVal d)
       Dim datetime, date1
       datetime = CStr(d)
       date1 = datetime
       gettimefilename = Year(date1) & Month(date1) & Day(date1)
End Function
Public Function HTMLEncode(ByVal fString)
       fString = Trim(fString)
       fString = Replace(fString, "'", "'")
       fString = Replace(fString, """", """)
       fString = Replace(fString, "/", "/")
       fString = Replace(fString, "'", "'")
       fString = Replace(fString, "--", "--")
       fString = Replace(fString, vbCrLf, "<br>")
       fString = Replace(fString, " ", "")
       HTMLEncode = fString
End Function

你可以调试中的启动来调试要封装的程序.调试成功后,我们就要生成了,点击解决方案资源管理器,右键单击dujian4点属性.在弹出的对话框中,将配置属性中的生成里面的为COM Interop 注册(R)钩上,是为了让VS.NET在编译生成时就自动注册它.设置好后点应用,确定.回到解决方案资源管理器中,对dujian4单击右键,点生成,这样你要封装的代码就生成了dujian5.dll了.再通过以下的程序调用

<%
set ofile=Server.CreateObject("dujian4.dujian4")
file1=ofile.getfilename(now())
set ofile=nothing
%>
<%=file1%>
这里只是做了一个简单的演示,调用了其中的一个生成文件名的函数!
如果你要在其它的系统上调用,请参考在《ASP中调用基于.Net开发的 DLL》这篇文章
用regasm dujian5.dll /tlb:dujian5.tlb /CodeBase 来注册这个DLL.
希望对大家能有所帮助!

1、在ASP中调用传统的ActiveX DLL
要想让COM能够“看到”你的组件,必须先将组件注册到注册表中:
regsvr32 mydll.dll
然后在ASP中创建对象:
set mydll= server.createobject("mydll.method")
mydll.method
这样就可以使用组件中的属性和方法了。

2、在ASP中调用基于.Net开发的 DLL
关于组件注册,一种方法是自动注册,在vs.net2003或2005的IDE环境中可以实现COM组件的自动注册,设置如下:项目名称->右键"属性"->配置属性->生成->选中"为Com Interop注册",编译即可。
另一种方法是手动注册:
regasm path/mydll.dll /tlb:path/mydll.tlb /CodeBase

regasm /unregister path/name.dll(卸载方法)
注意CodeBase的使用,如果你要注册的.NET程序集没有强名称的话,那么在使用regasm注册的时候就要加上/CodeBase。
注册完毕,创建对象及使用方法与上面相同:
set mydll= server.createobject("mydll.method")
mydll.method

其实,不只是ASP,其他的COM程序(包括VBA、扩展存储过程等等)调用DLL的方法都是一样的
 

抱歉!评论已关闭.