数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
9 j$ I  |( n5 K& u" {Email : cqq1978@Gmail.com
/ ?: A; B$ m9 {! {描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们
# G8 G. G% x: r      自己动手编写组件,然后在Asp中调用 # T- A( b  {* h1 E
最后修改: 2004-10-02
3 h. T. j1 J9 w- b7 t$ \$ r6 X( |**/ 0 N# C8 o# k) R. \: V; L
<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于
6 b/ U% O- D( |) \( _: h6 H( a0 ~; f2 ^% ]  _
第三方的组件。 比如说发送Email,文件上传等等。. |; E# n: {) ^  u
</P># m7 [! r; `5 g' ^9 J  ^
<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>8 Z6 D  z& B$ p# B5 g/ d! b4 y; |
<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要# A6 ?! T% c1 R8 o: ]- m1 v% ]8 V; A9 a
9 b% b/ a  o, g
界面,也可以选择ActiveX控件。</P>3 J& N2 j) l0 l3 l: z) Q5 K$ c
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。  }+ d3 @0 S) m

* n* z( s# s7 b( ^  e1 ~) A说明一下,我们在Asp中调用对象的时候,是这么写的:
. m9 v/ B% H: G1 e; r
" Z9 r. f5 I+ W7 a    Set obj = Server.CreateObject("AdoDB.Connection")) z& w0 S4 k  j; {/ ^0 p
/ w* ]" m* g" X) c
    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。
; C" U  E9 H% l# Q  S& T4 z4 Y; Q9 Q  B1 ?$ \7 m. s- P' H
    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。
7 ^$ D" \+ P- L</P>
5 q0 h* o& }; |/ ^; Z<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。! K: J+ Z4 D4 V2 [
5 J! m" L* ]/ T4 Q1 C
    我们写个很简单的方法,就是返回一个字符串
+ c% e  e' w5 ?/ j3 _$ W" l3 l) ]& H9 U</P>
) _6 v' w! \8 e+ U8 T& z, \; o<>    Public Function getVersion() as String
4 ^) h- a; }1 S4 V( P- f" L
( B8 S& ^2 Z# g' }2 C            getVersion = "我的第一个DLL,版本1.0": D- r* u4 O: T" n) ]$ F7 {+ ?
) y' h2 \. n$ {9 v# H; `
    End Function</P>; E9 h2 N/ m* M5 L' }  w; p
<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性
8 u' {! U" |2 Q' E
& r( F% j' W# C  x' G1 f* y    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib
3 S4 _5 @8 [  a: d' N' Y: ?  u</P>
; H6 @8 m. Q2 M0 y0 k  ]0 ~* a<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它& K1 K: C5 Y" b" e# H  [
) a" p/ `* n/ |( H+ O8 P
    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。
$ P5 Q0 G/ D( W( Z& @( J</P>4 ]- O8 b7 N4 T. N/ M$ T1 t) _, Z. X/ g
<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:
' @: k, J' v  m: G- S  t
. F8 x! g% F; ?5 g. B    &lt;%  W8 G! ^+ L* x9 e! O
    Set obj = Server.CreateObject("CqqLib.FirstClass")
) W8 w  N7 s- I/ t8 e8 u+ X    response.write obj.getVersion
0 i2 M' Y" ]' T# [! _     %&gt;
4 u  W, _, I+ U
- b1 n5 k. |4 n) A9 A; ?8 g: N( n9 W6 Q
     就可以看到输出结果了,也就是 "我的第一个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