仓酷云

标题: ASP网站制作之ASP进阶:VB中的模块,类,ActiveX与API的... [打印本页]

作者: 小女巫    时间: 2015-1-16 22:11
标题: ASP网站制作之ASP进阶:VB中的模块,类,ActiveX与API的...
缺点:正版成本价格贵(盗版就不说了)、不够安全,大多数服务器用windows系统,没有linux安全active|activex这几天弄了点c/s布局的程序计划,因为ASP用得对照纯熟,以是VB6.0天然成为我首选的开辟工具.在进修过程当中,我分离本人的履历总结下VB中的一些初级使用,而且体味这类使用给我们所带来的优点.
1、模块(Module)
在VB中,模块会优先实行,实在说白了,模块就象是全局的历程和函数挪用.这是开端的进步代码可复用性的路子。我想有履历的ASP(VBSCRIPT,今后都只用VBScript来写Asp程序)程序员都用过<!--#Includefile=""-->这条语句吧,这对进步代码的可复用性是对照便利的,在VB里模块就完成了这个功效.值得注重的是在模块中能够界说SubMain()历程,而且在启动内里可让程序从Main()历程进进.这有点象c,c++中的main()函数.不外模块的代码可重用级别仍是停止在历程,函数挪用上.
2、类模块
在VB中,能够创建类模块.类模块相似于ASP中的类.我想有履历的Asp程序员应当都有本人的类库吧.一样平常情形下我们怎样在ASP中援用本人的类库呢?对,仍是include,只需把类文件包括出去就好了.在挪用的时分只需Setxxx=newClassName就好了.这个和ASP中也是一样的.用类模块有甚么优点呢?由于利用类能够界说一些公用的办法和历程,能够将代码的可重用行到达一个更高的高度.
3、ActiveX手艺
大概人人会想,不管是用模块仍是类模块,大概良多功效城市鄙人一个项目用到.假如这个时分我们必要那些功效的话,能够间接把类模块和模块代码考到Vb项目中.在ASP中,我们只需把类代码做成文件,然后在其他使用include出去就好了.但有一个成绩,那就是代码的封装行.由于不管是类模块仍是模块,大概ASP中的写有类的.asp文件,代码能够被人看并加以修正.有无举措能使代码不让人看到呢?谜底是一定的,这个就是ActiveX控件手艺.ActiveX的长处在于能够分歧的言语编写ActiveX控件,只需切合商定的标准就行,然后能够被其他言语挪用.并且代码是编译好了的.这个关于ASP来讲,能够进步运转速率.好了,空话少说,上面看看给出一个实践利用的例子吧:
1.起首创建一个ActiveXdll工程,然后把名字写成TestDll.在类模块里的代码为:
<P>OptionExplicit
Privatemdbl_augendAsDouble
Privatemdbl_addendAsDouble
PublicPropertyGetaugend()AsDouble
augend=mdbl_augend
EndProperty
PublicPropertyLetaugend(ByValvNewValueAsDouble)
mdbl_augend=vNewValue
EndProperty
PublicPropertyGetaddend()AsDouble
addend=mdbl_addend
EndProperty
PublicPropertyLetaddend(ByValvNewValueAsDouble)
mdbl_addend=vNewValue
EndProperty
PublicFunctionPlus()
Plus=augend+addend
EndFunction

2.文件->天生TestDll.dll.如许我们就失掉了一个名为TestDll.dll的文件了,这个就是一个ActiveX控件了.这个控件有2个属性,一个函数.能够盘算出2个属性的和.

3.VB挪用TestDll.dll.新建一个exe工程.工程->援用->扫瞄,选中TestDll.dll文件,然后任意拖个按钮,在按钮里写以下代码:
<P>PrivateSubCommand1_Click()
SetobjSum=NewSum
objSum.augend=10.52
objSum.addend=382.41
Result=objSum.Plus
MsgBoxResult
SetobjSum=Nothing
EndSub
代码就不必我注释了.你能够看到弹出一个对话框显现2个属性的和.
3.ASP挪用TestDll.dll文件.ASP挪用dll文件和vb也差未几.方才vb挪用时我们要增加一个援用来找到dll文件.而ASP必要注册今后才干挪用.以是先创建一个setup.bat文件,内里写以下代码:Regsvr32.exeTestDll.dll假如这个bat文件不在TestDll.dll的同级目次上面,你必要加上TestDll.dll的相对路径.大概间接在运转里敲Regsvr32.exeE:websiteworkdllTestDll.dll.如许TestDll.dll就注册了,上面我们写个文件来测试一下:
<P><%
DimobjSum
SetobjSum=Server.CreateObject("TestDll.Sum")
objSum.augend=10.52
objSum.addend=382.41
Result=objSum.Plus
Response.WriteResult
SetobjSum=Nothing
%>

怎样,网页上是否是显现了392.93呢?如许ASP就挪用了这个TestDll.dll文件了.

实在在ASP中挪用ActiveX控件能够有良多优点,假如是年夜型的B/S软件项目,如许能够将营业逻辑封装在ActiveX内里,而ASP只需挪用就好了.独一的弱点就是必要注册组件.不外我们有一个变通的办法,在ASP5.0以上能够撑持类,我们能够用VBScript的类来取代组件,如许也能完成封装,只不外在功能上要慢些.不外如今.net手艺办理这个成绩.由于asp.net是创建在.netframework基本上的,以是用.net写出的dll文件不必要注册.详细的今后能够出.netMVC形式的文章同人人切磋.
4、API挪用.
VB的壮大的地方就是能够挪用WinAPI,如许底本VB完成不了的功效都能够经由过程API来完成.要挪用API起首也必要援用它.VB里供应了一个APIShow的小工具给我们利用.如许能够省往良多挪用API的贫苦.要挪用API,起首要创建模块,在模块里声名挪用的API,上面我写一个小程序,就是让窗口一直显现在最下面.挪用API代码以下:
<P>DeclareFunctionSetWindowPosLib"user32"(ByValhwndAsLong,ByValhWndInsertAfterAsLong,ByValxAsLong,ByValyAsLong,ByValcxAsLong,ByValcyAsLong,ByValwFlagsAsLong)AsLong

常量声明
GlobalConstSWP_HIDEWINDOW=&H80
GlobalConstSWP_NOACTIVATE=&H10
GlobalConstSWP_NOCOPYBITS=&H100
GlobalConstSWP_NOMOVE=&H2
GlobalConstSWP_NOOWNERZORDER=&H200
GlobalConstSWP_NOREDRAW=&H8
GlobalConstSWP_NOREPOSITION=SWP_NOOWNERZORDER
GlobalConstSWP_NOSIZE=&H1
GlobalConstSWP_NOZORDER=&H4
GlobalConstSWP_SHOWWINDOW=&H40
GlobalConstHWND_BOTTOM=1
GlobalConstHWND_BROADCAST=&HFFFF&
GlobalConstHWND_DESKTOP=0
GlobalConstHWND_NOTOPMOST=-2
GlobalConstHWND_TOPMOST=-1
GlobalConstHWND_TOP=0
GlobalConstFlags=SWP_NOMOVEOrSWP_NOSIZE


然后我们在窗体里加以下代码:
<P>PrivateSubForm_Load()
DimSuccessAsLong
Success=SetWindowPos(Me.hwnd,HWND_TOPMOST,10,0,0,0,Flags)
EndSub

运转下看看,是否是窗体一直在最后面呢?
研讨了下VB后发明,实在VB仍是供应了一些封装的手艺的.好比模块,类模块,另有ActiveX,而且VB可以挪用API来填补本身功效的不敷.最次要的是VB复杂易学,并且还供应了良多数据库操纵的控件.
因为自己用VB用得对照少,有毛病的地方还请指出.http://www.ncycglass.com/blog有乐趣的看看自己的blog,一同切磋.
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的
作者: 简单生活    时间: 2015-1-18 21:58
兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的
作者: 灵魂腐蚀    时间: 2015-1-24 19:16
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
作者: 飘灵儿    时间: 2015-2-2 12:41
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: admin    时间: 2015-2-7 20:12
不是很难但是英文要有一点基础网上的教程很少有系统的详细的去买书吧,另不用专门学习vb关于vbscript脚本在asp教材都有介绍
作者: 愤怒的大鸟    时间: 2015-2-23 10:19
另外因为asp需要使用组件,所以了解一点组件的知识(ADODB也是组件)
作者: 兰色精灵    时间: 2015-3-7 08:12
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 金色的骷髅    时间: 2015-3-14 17:44
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
作者: 精灵巫婆    时间: 2015-3-21 13:19
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2