数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
6 f  U1 Y1 @" u9 G2 FEmail : cqq1978@Gmail.com
6 X8 ?, L. c# i描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们6 z, P: P2 L: N; n( U
      自己动手编写组件,然后在Asp中调用 9 O$ w/ L- E+ X, ?: N3 Y
最后修改: 2004-10-02
; |& I8 c3 L2 Q3 U7 V' F**/
' {& O( m. l8 I; e# B1 f! I<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于! r+ x" |% a0 {' {
) y, Y2 `. j& v' e1 _* c
第三方的组件。 比如说发送Email,文件上传等等。8 R& r/ J5 y: Q" [
</P>, _. c$ m3 |5 W; s+ I2 @
<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>: G* f+ }7 L- m
<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要% P, C3 N/ e; K/ m- X

/ V* C+ l/ Z0 q0 O! ~3 u8 x' Y界面,也可以选择ActiveX控件。</P>
$ i% E# p/ q' ^6 \1 a5 W<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。
/ D) j$ S& r8 H) `, [5 U, S0 z! E0 X" v  i8 h
说明一下,我们在Asp中调用对象的时候,是这么写的:
$ v" Q  n  V: F  b% X: \$ Y7 {! w/ c/ R$ W* ^. L' G! m; Z6 ^
    Set obj = Server.CreateObject("AdoDB.Connection")
# s1 N0 p! z) G. U& G) c
% p; V3 U7 j% [! k: E- Y, O) e7 m    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。
% x: o4 }0 T7 q0 }* W! L7 D7 i' b! L/ x' V9 B. p
    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。
% W! K+ e( n9 _4 n; t</P>
. l0 Y9 R0 K8 U0 Y; m  i. \( z: o9 q<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。
6 a$ h9 g$ l6 M$ k* t& T3 w7 |
. [. q# n: H) B! F    我们写个很简单的方法,就是返回一个字符串+ q6 l9 \2 h  p- Y: F
</P>: F7 g4 ?& E2 S( u2 Z+ G( k# F
<>    Public Function getVersion() as String0 K* H& E( o; E2 U  l

8 R6 T1 `0 X0 r" v, c9 }3 Y% B8 A            getVersion = "我的第一个DLL,版本1.0"1 {5 _. \4 g' u' E  n% H* u

* `# _0 w# c2 p# F: W, j7 n7 \    End Function</P>
$ i1 Z3 p6 _  s. q! ~<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性7 \3 T9 [3 j" a6 q0 k/ ~

/ G7 f* N  _) k) [- u$ _    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib
! `: ]+ [$ i) F+ q2 G! M</P>
( x# t3 `$ q  w& c  k<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它
  J) p7 m8 }) m+ {3 o5 r+ [
; n/ l$ n; |# L- J& S) J2 o" G    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。
# R4 v+ m$ {" c% ^" N* O: z  O* x</P>
6 p# [4 T4 p( |0 z- H" s7 q<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:9 X7 q! B. t3 d; T' l; L/ _$ V% O

; t5 {) u/ p. Y: U3 L; S    &lt;%
8 U- X; f& x( S- G6 R& Q5 b6 ]    Set obj = Server.CreateObject("CqqLib.FirstClass")6 ^8 M1 b5 B* b5 x% T5 @
    response.write obj.getVersion
8 a; {. F; D, u) q     %&gt;. D5 s* C1 o" p+ f

; c2 g' ?3 F* L6 j! ^
, K* M4 H7 @8 X' Y4 h% s9 M$ r     就可以看到输出结果了,也就是 "我的第一个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