数学建模社区-数学中国

标题: Asp中调用VB编写的DLL [打印本页]

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强' v- A6 N6 X9 K. a+ F
Email : cqq1978@Gmail.com0 J; L) L$ ~* l7 k5 B2 I. |; T
描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们
. \/ X4 J9 x# d5 s% h5 |0 o      自己动手编写组件,然后在Asp中调用
# c. n$ _% K9 e/ `% M. F6 Q$ Z3 U最后修改: 2004-10-02
9 t$ `' I) b. Y' U4 f1 k1 @**/
3 C5 j; B( k* B) l<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于% p) ~# Z2 j/ `
3 ]" z6 f2 n$ }6 @5 I& |+ C3 s
第三方的组件。 比如说发送Email,文件上传等等。
( t; e6 |( G6 {8 a8 O0 ^</P>
- f: B! H/ R6 q<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>
' ^) ]5 A: F4 B/ R' {2 ~# p<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要- Z: j7 u' |! @$ ~# P) ^
4 K0 `% h& X+ p
界面,也可以选择ActiveX控件。</P>
8 ]6 E" b# `  S: Q' o; ^5 ?<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。
* F7 \. D. j4 f2 N4 _& L& s
: P* t" o: x* ?, N5 T! @说明一下,我们在Asp中调用对象的时候,是这么写的:: G# c2 f$ ~* f  W. v8 P
( e) U  g) a; ^$ o* b: h
    Set obj = Server.CreateObject("AdoDB.Connection")) x5 {' a% v5 ~/ r; {' z, k3 z

. u# b+ B$ c( x7 _! m, r    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。, T4 H% s) J9 p0 b: c, z7 \+ k
! h0 p* j$ u- M0 s* s" @
    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。* \# ]" [, r. i! @- G
</P>& M0 E9 M6 l. `* ?/ V
<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。: e4 Y* z  p$ l. [) \3 \8 Q  J" u
7 A( J9 e9 T! i, _0 V/ M  _! L! F' n
    我们写个很简单的方法,就是返回一个字符串: k2 o* u% J; j7 Y9 B5 A3 Z" _
</P>
" L7 E5 K: L9 G( C* F! n. _4 I/ ?<>    Public Function getVersion() as String
7 B6 H, K+ E# r  Z" O6 w3 t; d/ [! `' V1 Z  J
            getVersion = "我的第一个DLL,版本1.0": G% \! A  p9 [7 u; v! Y+ p; n
$ M! h& L  M5 j7 f9 B- j
    End Function</P>. _+ b: @: v' a* G$ V+ o3 Q. p& x6 N
<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性5 u, ?$ {) I1 Z- Y
) |4 r. i" P0 Z$ H$ H6 }
    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib( Y9 O7 S  w/ m! i0 ]5 Q% ~
</P>' e9 E" }! S4 {9 H3 A
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它
; f$ J* r. h* f* B( b
; K- F/ c) _7 l& z2 Z6 n    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。
( S4 s" n8 p. W8 d- U8 ]/ D4 a</P>
; Y+ J2 |, Z$ F  `0 j! S<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:
" n! r$ W7 C  d+ v+ W
7 t3 [- X6 v7 Z/ T' d9 T0 C    &lt;%
$ w% v  {2 U, U/ {    Set obj = Server.CreateObject("CqqLib.FirstClass")% g3 K/ B( ]6 B8 {; \9 V- p8 e0 j) I
    response.write obj.getVersion4 }& ^; l2 @/ ]
     %&gt;
. Z- K& ~. n3 X% u: d+ F
4 \) F& |" c9 b& w" X
' ]) C: q  g# Z! n     就可以看到输出结果了,也就是 "我的第一个DLL,版本1.0"</P>
作者: kensington    时间: 2010-2-3 23:25
有点意思
作者: absdswor    时间: 2013-11-18 11:36
\(曾o周)/




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5