数学建模社区-数学中国

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

作者: 韩冰    时间: 2004-10-6 09:53
标题: Asp中调用VB编写的DLL
作者:   慈勤强
! w7 E+ e" s. x4 sEmail : cqq1978@Gmail.com; l" U  a& d" M9 h* L1 k; U
描述: Asp自身提供的几大对象在有些时候并无法满足我们的需要,这时候就需要我们  f8 ^7 z* P& \
      自己动手编写组件,然后在Asp中调用
: ?" M! P3 A/ Q  n' ]( x最后修改: 2004-10-02
" H4 ]4 I. |' V0 j3 i**/
) G5 ^8 O1 S: t- v1 l* M: G. c<>    在用ASP做网站的时候,经常发现有些功能是Asp本身所无法实现的,就必须借助于/ w3 |7 B. f: i- x

* g. q4 X2 x9 U第三方的组件。 比如说发送Email,文件上传等等。. J0 ~% x' k; ^0 h! n) ?. D" G
</P>0 a% q2 v+ I  Z$ b* C
<>    今天就以VB为例,简单的制作一个我们自己的组件,然后在Asp中调用它。</P>
+ n4 k1 f. q* G7 b, K9 w<>    首先,打开VB,在新建工程类型里面,我们选择ActiveX Dll,如果您的组件需要
$ g: E5 Y5 b2 a. _* h2 {
: k- R! s  E* x/ j界面,也可以选择ActiveX控件。</P>! D0 F3 L' i+ a: M
<>    然后,系统默认生成一个类模块Class1,我们可以改成我们需要的名称,比如FirstClass。
) a2 V* I' @1 X) @" e7 K( j7 L, d' E! Z6 n  {1 I
说明一下,我们在Asp中调用对象的时候,是这么写的:
* z1 w, w  F' g. ]' ?+ A( Q
6 Q# [' Y4 N6 S4 C5 D, P6 x    Set obj = Server.CreateObject("AdoDB.Connection")
8 x* r) @# W: [- t. s# l$ \1 x* }0 c) }. x0 I9 B0 l
    我们都知道,AdoDB是一个对象库,里面有好多个对象,而Connection是其中的一个对象。. k. B, T! ^1 ~3 x, N! W

% v" b5 t* f+ q0 }- A' t" y    所以,我们在上面创建的类模块,其实就是具体的对象,与Connection的地位是一样的。, e9 x; X& K, _% E6 \
</P>
1 e: Y0 A! U+ L( t<>    下面,我们就可以给我们创建的对象FirstClass编写代码,实现我们的功能了。0 o6 ]6 x, H; u4 n/ Y& R5 V2 [
! }- X' m* x  o* o
    我们写个很简单的方法,就是返回一个字符串" h7 r8 w" M( _% ~# ^# N- l$ _* x
</P>4 i: _. }' T8 V# }
<>    Public Function getVersion() as String3 C: _# s& J* R$ y/ P% {2 u

* V' ?4 C. p; Z6 E1 I' D            getVersion = "我的第一个DLL,版本1.0") n; L  o! t/ d; S
  j9 Q, O( c& i% ]2 y; M) _
    End Function</P>9 q, Y/ u" i- y) t1 |/ X
<>    写好之后,我们就要确定类库的名字,就像上面的AdoDB一样。 我们在工程菜单,工程属性, V: D. [, i5 t4 f0 i; ^
' I+ j0 K) ]6 b/ \( {3 N
    界面,可以看到一个工程名称,默认是”工程1“,这就是我们需要修改的地方,比如我们改成CqqLib
$ V' K7 N: Z1 M8 V  t/ Y! {* H0 k% m" M</P>8 q, z" }2 L7 G: D& \
<>    好了,生成相应的Dll, 这个时候系统就自动把这个组件注册到系统中了。 如果要用在其它
  F9 B: v4 z+ `/ N4 `( l
: g/ o( i6 t" P8 F/ E! \    的电脑上,需要先注册, 就是在命令行下输入 regsvr32 a.dll 就可以了。( P/ P1 E- `0 D, j
</P>' F" B& `" u% A# U8 [
<>    下面,我们看看在Asp中怎样使用这个Dll,很简单:
% ~. E8 N! P8 ~) R2 p# R1 L: U# V( }1 |% u$ z  K
    &lt;%( d5 E; R. U4 L. E$ j
    Set obj = Server.CreateObject("CqqLib.FirstClass")
: o/ i6 ]* |+ u4 L; i6 B1 o' j    response.write obj.getVersion5 M7 n$ ]9 |. ~! t2 L3 Z
     %&gt;
! d: R% l. t' x3 ]
% a1 V% t3 e, [! e0 j% z
+ Z2 c4 Q* _) ~! |3 ]     就可以看到输出结果了,也就是 "我的第一个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