数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
7 D# R8 k! Q  @! _2 N+ R2 \Email : cqq1978@Gmail.com/ H- q/ |, h% q3 U! T' {5 s. i
描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们
# Q1 k( R  r# k1 m      自己动手编写组件,然后在Asp中调用 * ^! }& h$ v) J; \6 I6 Y
最后修改: 2004-10-02
5 w" k- A+ [& X( V**/ " j; z7 Q. @3 M0 @9 d# Z/ P
<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于
3 I2 L- j. @6 ~) A, S7 A' h% c2 Q) Z  U% t4 |' ]" L
第三方的组件。 比如说发送Email,文件上传等等。: E! x+ I1 x6 R
</P>
5 A0 X- I- H8 M+ N, b6 [<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>
1 m4 X1 g/ j& }1 x8 k( ~<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要
, a8 _% O1 T  T4 Q! @; d! E
6 a4 ~# o" M$ f6 T$ r+ c. r界面,也可以选择ActiveX控件。</P>5 K0 m! C0 `) ?  N+ R/ J, G
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。$ D1 Z' e, c) n* A8 f( {9 \  X. e4 R

+ s4 `% Y- r/ o4 C7 O, i. I说明一下,我们在Asp中调用对象的时候,是这么写的:
) Q2 _: ~. @0 B7 _" X: P: Q$ x1 \( @2 F( P1 s4 b$ ^' V/ U
    Set obj = Server.CreateObject("AdoDB.Connection")
( b% G; P2 h; @- z" j4 h$ Y% v. U" D
; @9 f5 `5 N/ U    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。
1 Z7 \0 a4 y9 ~' c* E6 U
+ p: O( S, D: d7 S. n( ~+ f# M$ m    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。
+ Q) P' D; ]2 A4 v+ K  T+ V  V</P>
8 l# x" a9 j$ y<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。. t2 V& W2 }( k' v7 _
  d  C8 u& f; Z  B" l. F4 U
    我们写个很简单的方法,就是返回一个字符串6 Z! ]- u2 G1 R, i8 k0 D2 W
</P>6 J. G+ D( X+ _: g( X. m3 o
<>    Public Function getVersion() as String0 v& `- c# B; W# C7 `
$ U. b- l2 t" @. M" a
            getVersion = "我的第一个DLL,版本1.0"
0 F: C' q4 [& r* U9 A: w
% I2 G* P- V5 d/ L( w: f    End Function</P>0 R  s: e/ D% S8 m3 Q; z
<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性
1 s* ^' X2 P5 ~$ S' c& K+ E9 ?% Y: J( [, n  F  A
    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib2 y4 N9 O* O. [
</P>0 E' v: S" y/ j7 B" ^
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它
" ~6 T/ ^- d. ^4 z/ c$ L& z% l& b7 `, w' k0 S0 d% ?  [2 ~& M$ A
    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。
1 N' e3 Q7 r5 ?</P>9 D, `* |8 l: p% S0 q! i
<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:2 Z6 ~3 L, D+ D9 {5 U/ O
* b; a6 F8 m' T* c% ^
    &lt;%
& m2 Q) H. ^) s/ S, I) T, Q' j    Set obj = Server.CreateObject("CqqLib.FirstClass")
8 [( K/ B3 {. v. U% S3 l1 g7 ?- h    response.write obj.getVersion
1 N3 x) \" I% f  Q5 L     %&gt;
: k2 g. q" M; `# g6 Q$ N* J, g
$ G' q$ i/ V; W) W9 U! o8 F, e4 ?% [8 I3 P
     就可以看到输出结果了,也就是 "我的第一个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