数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
" c# B  d! V* R# ^( e: R3 m* UEmail : cqq1978@Gmail.com. N9 j" R1 G& G' L2 e
描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们" n0 K( G2 @' G: w7 N( @
      自己动手编写组件,然后在Asp中调用 " D5 W; v9 N; Z" {
最后修改: 2004-10-02
8 y" u( K# e# _**/ 5 B5 l" d1 h1 o/ z4 _. A. a1 y& n7 S
<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于( m( G. ^, @- |" m$ A1 t
3 B* B, S% ]' D5 N$ M  f: w+ E
第三方的组件。 比如说发送Email,文件上传等等。
: o2 a: A9 _$ k</P>/ |9 ]$ i9 v; [5 y+ Z
<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>
; X5 E* x% S8 k<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要
7 W! o, o  @8 ]0 k3 ?$ n: E
: ]5 H7 Q& l$ _7 v界面,也可以选择ActiveX控件。</P>1 X# O$ H/ P2 y- ^# U3 X
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。
% }* X9 |8 W( q0 E* z
1 V! T4 w7 d6 q说明一下,我们在Asp中调用对象的时候,是这么写的:5 V: Z$ l$ E0 h) x' E$ Z* Y$ Z: `
/ Z' l- U  ~# d# ~
    Set obj = Server.CreateObject("AdoDB.Connection")
/ a: x  P* _1 d3 G+ L" c
. |: a# m/ _- p5 `% E    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。
3 d0 b( L& K4 s$ a# g+ j: ^4 h' h' m% g
    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。6 x- z& ?+ Q! K4 @9 l
</P>
. r! {$ n: W) l1 |! E9 u# N0 F<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。
  P. [* e- V8 M1 t6 x( \$ ~1 u# L2 ]3 Q' Y
    我们写个很简单的方法,就是返回一个字符串3 l  V" _( [' q% Q, m) h
</P>
% A& k. \) K: j. V. A<>    Public Function getVersion() as String# S4 z: {3 e% ^& O" k' ^: n
' \. o; x, s! x- O; u3 L  U
            getVersion = "我的第一个DLL,版本1.0"
2 U0 O2 K! C' d' h8 H2 a7 [8 `- `- a# o6 Q3 W
    End Function</P>
5 x8 q9 s( R! H2 [0 ]( }9 a; a/ S! |<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性
" R: |* P, Y3 O& W" i
+ U" |$ h1 p9 D  D8 O; ?' ~# p    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib# w: \2 n5 C* t& _
</P>, I. e! X. D, j  j5 [- q+ J: u, i
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它
9 Z( z( O# \( i) L  ?6 Q( h) {$ \8 F  o3 \# J! K/ A! l9 _; V8 [  _7 i- _
    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。6 Q4 S3 R4 ?5 v* f1 z0 w0 ?1 Q4 k
</P>
/ ~. N* E' Q- p, o) i<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:! Z/ S: S& |. s7 S" T
! n- W% J% x! @2 k5 B; M
    &lt;%$ X' S: k8 i6 |! i) w
    Set obj = Server.CreateObject("CqqLib.FirstClass")$ T  u. X. A! E8 v: m" x5 \. j
    response.write obj.getVersion
; q! F5 Y& q, c  C2 u0 l% f     %&gt;; h1 y! `; i7 v% E- m& b
8 F! w! N# T) s

) L" T6 i# ]- v  L; }6 m+ S     就可以看到输出结果了,也就是 "我的第一个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