作者: 慈勤强 * I& G$ n2 \# U( k& yEmail : cqq1978@Gmail.com , ]2 t5 n, K% U5 G: G描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们0 `% n; k; u. y; ?, v; x3 A. p
自己动手编写组件,然后在Asp中调用 . O4 i3 |, o ^1 v! q6 C m
最后修改: 2004-10-02, l2 `6 E/ p# b6 c
**/ + j* Y e, m: t+ ^( ]
<> 在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于 " }" C x( l9 `) c4 U9 w1 ?4 e, L7 t
第三方的组件。 比如说发送Email,文件上传等等。 " M& ~3 U1 I9 D5 r. B% ^</P>1 B- i4 C, D# Z' S: ? {7 q: C
<> 今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P> ( V0 |$ H1 ?; l+ _8 u4 |<> 首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要 & K7 v4 n! \9 d6 Q 7 S1 g& p+ p( P2 j9 f$ F: x( R界面,也可以选择ActiveX控件。</P>7 C6 l' Z$ G( i) z2 O$ [: c7 h8 N: |
<> 然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。5 a+ P9 P Z3 X+ ~
5 _5 F! {/ z* }8 ]0 _( R: Y9 V说明一下,我们在Asp中调用对象的时候,是这么写的:, D) }+ S" f6 f5 Z1 C. Q9 S4 w
" [' W+ t4 a" Q+ o5 }/ C
Set obj = Server.CreateObject("AdoDB.Connection") / X2 _2 B5 y2 I, l( C* P + Z, [1 j& F' h/ ^! f8 J7 w 我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。 0 R8 t3 d% t' l$ u. R0 N, W! ]$ a& i1 `0 c$ s& r/ @
所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。) N. u7 v4 m* F
</P>& x; P2 t( Z$ m
<> 下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。+ M! r- r1 u- Y F- K, |9 C. O. l
# X* m Z' w& E# p 我们写个很简单的方法,就是返回一个字符串 0 Y p, ^6 U* J+ B5 l' c) v1 f</P> 1 L2 I' ]! u' X' E4 B" ~! K: L w<> Public Function getVersion() as String* R0 ]: H B' w8 h6 P6 r4 L+ u
( o. O, b* W, F4 h getVersion = "我的第一个DLL,版本1.0" : Y8 R4 ^! K" T1 v6 C) K ' k7 z. Y, A3 ^8 O End Function</P> # q, O. d1 U+ [) l8 v( `<> 写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性 $ i8 n% F( }: P5 \5 P" e# ]# B' |4 b6 r' J, x
界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib / P: e* @& v2 u</P> 9 N; {. K" M: z) } _<> 好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它, e4 @- u/ J; p: b
F& x. s/ i( w% f n* {, n* f 的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。 : V2 L& z; R+ W" K; J; p</P>" \6 r/ H0 Z# R
<> 下面,我们看看在Asp中怎样使用这个Dll,很简单:& g) w& k% {, U8 j3 Y0 _8 _9 s) w
7 `5 m8 d! V# `9 q2 _, l
<%5 S* j* @! o/ c' Y
Set obj = Server.CreateObject("CqqLib.FirstClass")- e: O$ `0 e5 h3 v% V$ O
response.write obj.getVersion. }( t' D# ] N
%> # s7 i& W4 ?% ?8 ? C0 K8 N7 P& e1 `& X
! t q: y$ H' R- Y* O7 n
就可以看到输出结果了,也就是 "我的第一个DLL,版本1.0"</P>