数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
. J4 Y* i  ]6 K- J$ C' MEmail : cqq1978@Gmail.com
; {& T  V8 w8 |$ {4 i描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们
- g7 m# _' u. ?) n6 |: y! G      自己动手编写组件,然后在Asp中调用 ' K- l* d9 h( A$ D5 Y$ w
最后修改: 2004-10-024 S6 z' q6 D" H& w7 A7 K% R
**/ # W% u& M8 a0 e0 v8 y
<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于! o. Q9 y2 o# ^- Y6 [

5 Y7 Q. A1 D' D第三方的组件。 比如说发送Email,文件上传等等。
: R9 |! N$ p* j8 m, _! Z</P>
3 S# X. [& }0 A4 W<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>, ^- q% H" z: _, q% X; I
<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要0 U8 l$ ?6 `( h" i1 @$ ]0 y
& Q# H4 h2 w8 a% n- Y1 r
界面,也可以选择ActiveX控件。</P>2 V1 \& b* S- g) \
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。
* ]$ ^2 ]# }6 w+ N0 ]; M8 a7 I% J7 K; h
说明一下,我们在Asp中调用对象的时候,是这么写的:0 \% {" J  x$ b- i1 A3 {

" i5 K1 P* Y0 H6 \2 E, P, L    Set obj = Server.CreateObject("AdoDB.Connection")
7 i9 z7 r7 n* y- x& {2 }' G% |! L) P& o4 s
    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。
" V% c3 I: x) L9 V. k% a: I9 _! S7 E
    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。" u  i3 ^/ R- A! l" O
</P>! A0 D  c; U% e5 Q, |: N* w7 i/ y
<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。
- C  V/ T& ~' k+ ^+ L. x- h8 W$ X
* |9 i2 a- P+ ?8 B    我们写个很简单的方法,就是返回一个字符串
, u) L* M5 G) N: {& P) S* s</P># N1 M* V3 W5 b2 l3 ~9 i
<>    Public Function getVersion() as String
1 n0 L% n  n$ K+ Z" V7 Q
3 [$ h4 k: ]3 F  w3 s) H            getVersion = "我的第一个DLL,版本1.0"8 ?# l. R5 @, |+ v, T' k

7 U% l. G5 \( N+ L: F% t    End Function</P>
; j0 a5 k% ^7 W% P<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性5 K7 a& \; U6 a/ q% a

. ?. i$ T0 P/ X% k1 Q  A5 W8 T2 S. G    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib
( W, p( F" G* U5 @# U7 I' ~</P>9 A! K* M& O& p- Q0 Q2 M
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它/ D2 h% \2 \* Y* w/ E

6 ~" Y  \7 f$ Q- u4 i    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。
4 Z3 p+ X: R8 t2 t* d- f</P>) m  Q4 f4 [! X3 d7 w! @9 J* v" ]3 O
<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:
$ K6 \9 E4 G4 |( ^6 |2 V
% U" C) h% B( c; z8 p/ z    &lt;%
, t$ d& U- [$ ~* v+ K, c+ l7 P    Set obj = Server.CreateObject("CqqLib.FirstClass")' z9 w% c# u& j- w( X1 ?
    response.write obj.getVersion  u$ e* m% ^& C
     %&gt;5 z. `2 |# t8 Y+ t; K
7 r: `7 X; u: e7 _1 g
+ Y9 U4 j3 H2 X3 q2 {2 t- L- ?9 {
     就可以看到输出结果了,也就是 "我的第一个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