数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强: a1 H0 f% }2 ^" m* ^
Email : cqq1978@Gmail.com- V8 B% _4 }7 [" ?3 N7 ?
描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们  ~8 j# g7 a# m: T) O  k
      自己动手编写组件,然后在Asp中调用 ( n" ^1 d% n8 R
最后修改: 2004-10-02' P+ V; ~( }: P9 I! M4 ~
**/
* h& S: _1 L4 Z6 r- ]<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于  q- U- g. ]/ l% J7 u# C
: t6 r& a+ L; [, G3 O
第三方的组件。 比如说发送Email,文件上传等等。7 {5 N2 R6 m) I3 y  m9 c
</P>/ u! ?# Q% D& p- f
<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>4 C, X% `0 a  c0 B$ l) J4 x& R" t
<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要  E9 ~( @, a. \; [* M7 d

: U, `% Y& Q7 A4 q界面,也可以选择ActiveX控件。</P>8 ^( T# ], D1 c. k* m$ D
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。1 N5 W( ]' _/ T* |( P+ E% u1 p! u5 P
, N4 ^4 W" j; t* s; C
说明一下,我们在Asp中调用对象的时候,是这么写的:
; ?* l- a7 g; o% y+ X4 c" @: q; H
( d5 F& E& D8 m: n  m5 M    Set obj = Server.CreateObject("AdoDB.Connection")5 A) `$ s, W/ t
; {) s& K! B4 G( I! V
    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。' H, b% s+ y. p& k4 U4 a$ ^

, z3 F4 d" `+ s    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。. A" U4 L: S8 Q' Y* E. F# z
</P>: O$ S4 X4 t# C; e
<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。
7 Z0 n9 l( P9 o+ ?
; R. u, A- J- Q1 F- `* X' o8 R$ |    我们写个很简单的方法,就是返回一个字符串
% v: `: d$ Y, [# |</P>
8 v, \. C- u( M4 t/ t3 |<>    Public Function getVersion() as String
0 Y3 O# _4 ~5 R/ w. R9 r4 y* c( _. H. I" t3 y: v" O
            getVersion = "我的第一个DLL,版本1.0"
8 H' ?! V; a+ C  P' a3 H
* _+ A) d2 O: m& g3 H    End Function</P>
; g8 a% ^! \) |: C2 [<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性
; S1 T( t1 g# S2 E( Q8 ^/ C6 q
$ \- |+ k5 j! U6 Z0 w. u. [+ ]6 N    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib$ r% {5 [* ~, m9 f7 I  }
</P>5 d0 A* @5 o3 `. }7 T, ]
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它8 C& q8 X' K7 V, P1 N4 m

# F3 S+ l1 J# X6 z% w( z! P    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。7 T7 D  \+ \7 Y, q# w
</P>4 w8 j3 D7 {/ |  D, N! n. g
<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:: u0 Z6 [+ z1 `9 ?* ~. H" n: d
& s# ]! O0 w0 R2 H0 |! m/ T
    &lt;%2 h  ^5 N! r- f( D: t
    Set obj = Server.CreateObject("CqqLib.FirstClass")0 C0 L. ^" }) s# ]. T8 C& y
    response.write obj.getVersion  I  F2 g+ `* ^
     %&gt;
3 Q6 o/ u! J+ U' u: b; q. E; D5 E2 H% M2 |8 C9 H/ N
: T, O( K: p; K: V2 y+ ?  Q, C1 c
     就可以看到输出结果了,也就是 "我的第一个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