动态联接库(dll)可以加快应用程序关键部分的执行速度,同时通过统一的com接口调用,对dll的使用也可以最大限度地发挥组件的重用性。用户不必关心dll采用什么语言编写,只需关注其提供了哪些功能及接口参数,便可以为我所用。
目前,基于.net技术编写的dll组件越来越多,而传统的asp中如果也可以应用这些组件提供的功能,可以避免很多程序员无谓的劳动。最近本人在工作中需要在asp中调用.net环境下生成的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 mydll.dll /tlb:mydll.tlb /codebase
注意codebase的使用,如果你要注册的.net程序集没有强名称的话,那么在使用regasm注册的时候就要加上/codebase。
注册完毕,创建对象及使用方法与上面相同:
set mydll= server.createobject("mydll.method")
mydll.method
其实,不只是asp,其他的com程序(包括vba、扩展存储过程等等)调用dll的方法都是一样的。
有关于regasm的参数,请参考:
http://msdn.microsoft.com/library/chs/default.asp?url=/library/chs/cptools/html/cpgrfassemblyregistrationtoolregasmexe.asp