仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 445|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之VC++库

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:09:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般c++
大批的程序员都尽量多天时用现有的代码。程序员常常购置那些包装成库的代码,并且很多乐成的公司恰是靠临盆真正优异的代码库而开展起来的,比方RogueWaveSoftware(www.roguewave.com)。
当C言语盛行时,代码库就是函数库。比方,能够购置一个数学库,该库含有完成微积分和代数运算的函数。一般,能够在程序代码中利用一个包括文件来指定一个函数库,能够静态或静态地链接这个函数库。
静态链接意味者库代码间接集成到程序中。在这类情形下,程序不依附于其他文件,但文件的巨细大概很年夜。静态链接意味着程序有库的版本信息,其代码寄存于一个独自的文件中,这个文件称为静态链接库(DLL)。只要程序运转时代挪用DLL中的函数时,才加载DLL到内存。DLL作为一个自力的实体存在于内存中,能够同时被多个程序会见。
呈现C++后,函数库变化为类库。二者的区分在于函数库只包括一系列函数,而类库是用面向工具编程的道理计划的,比方,能够为数据布局做一个类库,该库包含一个链接列表的类。假如利用一个函数库取代,那末链接列表会自力于操纵它的函数。另外一方面,利用类库时,链接列表和操纵它的函数存在于统一个文件的统一个类中。但是,正如利用函数库一样,利用类库触及到包括文件和链接一个静态库。
比来,已从类库开展到模板库。其缘故原由是C++编译器如今已可以处置C++模板。模板库供应了一系列优于类库的长处。要利用模板库,只需在程序中到场包括文件便可,不必链接到库,由于一切的库代码已包括在该包括文件中了。
这听起来不长短常高效,初期的确云云,由于每一个包括有模板文件的文件都要失掉一个独自的代码拷贝。因而,编译后的程序会很年夜。可是,为了顺应模板,编译器已优化,使得这类办法十分高效。
VC有三个供开辟者利用的库:一个类库(MFC),二个模板库(ATL和STL)。
17.2.1微软基本类库
微软基本类库(MFC)是微软为匡助C++开辟者而创建的类库,含有撑持各类分歧功效的很多类,包含完成庞大的数据布局、操纵Windows和会见数据库等。可是,是不是应在服务器组件中利用MFC?回覆是不是定的!
这很明智的,不要在服务器组件中利用MFC,服务器组件不克不及会见Win3.2,以是不必要MFC库,数据库撑持最好用ATL完成。
ATL撑持ADO和OLEDB,而MFC不撑持。STL与MFC比拟有更好的数据布局撑持。即便最经常使用的MFC类,如CString,在尺度C库中也有等价的类。偶然会利用MFC类,如CSocket,但它也可被一种Win32API取代。
MFC是用来创建独自Windows使用程序的,不是用于轻量的COM组件。只要在与现有的利用MFC的代码接口时应利用MFC类。其他情形利用ATL和STL类,如许可使组件更小且运转得更快。
17.2.2举动模板库
你能够判别出举动模板库(ATL)比MFC新,由于ATL中有“Active”这个词,另外一种叫法是“微软模板库”(MicrosoftTempleteLibrary,MTL)。
ATL用来疾速、浅易地创立COM组件,并且只占用较少的内存,组件的关头部分是由C++模板完成的。实践上,ATL的计划在模板的利用上相沿了STL。
C++模板供应一品种型平安的办法来完成一样平常的接口。很侥幸,微软供应了一些发生ATL代码的导游,以是在创建复杂组件时,不用懂得模板,乃至不必晓得ActiveX的一切细节。ATL另外一个长处是不依托DLL,就是说在装载使用程序时,不用装载DLL和静态地链接,这两项会增添对内存空间的需求。
ATL使COM的开辟加倍简单,ATL一样撑持经由过程OLEDB消耗者和供应者的数据会见,另有一些特别的用处,如撑持创建微软办理把持台(MMC)插件组件。
与ATL对照,MFC依附于分外的运转期DLL或静态链接,以是发生了比ATL年夜而慢的代码。因而,在创建COM组件时,假如没有效户界面,那末选择ATL比MFC好。
17.2.3尺度模板库
尺度模板库(STL)关于VC++编程员来讲是利用得最不充实的有效工具之一,但它是独一一个尺度的和跨平台的VC++库。
利用STL未几的缘故原由之一是,微软的STL文献难以了解。如今没无为VC++程序员而编写的STL书藉,由Musser和Sauni编写的《STLTutorialandReferenceGuide》是一本关于STL的好书。
STL对C++组件开辟很有效,缘故原由是包括了很多数据布局和算法。良多情形下,服务器组件的用处就是处置数据,STL十分符合这一用处。
微软最后完成STL尺度是在VC++4.2中,可是,这个STL完成做得很差,乃至不克不及利用。一些人经由过程利用HP或SGI供应的STL完成办理这个成绩。既然STL是一种ISO/ANSI尺度,它就是跨平台的,只需编译器撑持STL所请求的布局就能够。但是,微软更新的STL完成(在VC++5.0和6.0中的供应),比之前的STL更不乱、更简单利用。
STL是对ATL的完善增补,ATL没无数据布局和算法。并且,STL和ATL有类似的完成办法,即便用C++模板,以是共同得很好,并且二者都不必要链接分外的静态或静态链接库,如许就会使组件更小,使它们对DLL的依附更小。
上面让我们对STL的关头观点做些先容,在创建服务器组件时要用到这些观点。
1.STL遍历器
利用C编程时,一样平常利用两种办法来遍历数据布局:利用一个下标或递增一个指针,这两种办法到达不异的效果。可是编写一个通用的算法来处置分歧的范例是不成能的,用STL遍历器能办理这个成绩,上面的例子是最好的申明。
上面的程序展现了两种尺度C的遍历办法,最初是STL的遍历办法。该程序的义务是盘算一个字符串中“t”的个数。


利用遍历器办理了利用指针或下标时呈现的成绩。指针和下标依附于数据,这些数据在内存中相邻寄存,而遍历器埋没数据,使数据布局的利用者不用懂得数据存储的按次。埋没数据布局同意创立通用的算法,这类算法可以与各类数据布局一同事情,比方与容器一同工
作。
为了算法的效力,STL界说了五种遍历器的类:输出、输入、前向、双向和随机会见。算法针对特定的遍历办法计划,因而具有最优的功能。
遍历器类似于指针,挪动到下一条目和前一条目分离利用操纵符“++”和“--”,一样,取得一个条目标值利用操纵符“*”。
2.STL映照
一个映照就是一个排好序的容器,这里体贴的是可以依据存储在条目中的键以尽量快的速率检索条目,而不是体贴使条目以线性的按次存储在容器中。
STL排序容器有set、multisetmap和multimap。set用于条目汇合,map用于一个条目与另外一条目标联系关系。因为利用双向遍历器,排序容器撑持以线性按次挪动数据条目,只管排序容器的目标是用于键会见。
一个映照容器撑持基于独自键的疾速数据检索,这个键在映照中是独一的,映照关于希罕数据具有节俭大批存储空间和削减很多盘算工夫的潜力,在前面的叙说中你将看到。键和值是以pair范例存储的,这个范例有两个成员:first和second。检索first前往键,检索second前往键的值。映照的遍历器就是pair范例的遍历器。
在本章前面将看到利用映照的例子。
3.STL矢量
一个矢量就是序列容器的一个例子,其他序列容器是deque和list。它们具有类似的功效,基础的区分在于功能。比方,除在deque的入手下手处拔出和删除的速率比在vector中快以外,一个deque与一个vector没甚么区分。分歧的成绩要用分歧的体例来会见数据。矢量能对分歧长度的数据供应疾速随机的会见,在此序列的开端拔出和删除时较快,而在其他在中央则对照慢。
4.STL算法
STL算法依据对其操纵的数据布局的影响体例和互相感化举行分类。STL算法与其操纵的STL数据布局的接口是STL遍历器。STL遍历器饰演了一个主要脚色,由于它限定了算法如何会见数据。很多算法吸收一个函数作为其接口的一部分,这个函数的参数前往一个布尔值,暗示一种情形。用函数参数能够定制算法。
一些STL算法同意函数作为参数传送。多半情形下,这些函数完成一个对照,而且前往布尔值。比方,一个排序算法利用一个函数作为参数来对照两个值,这个函数依据某些原则对照一个值是不是比另外一个值小。分歧的函数有分歧的原则,从而招致数据以分歧的按次分列。
更风趣的是,将一个函数工具(而不是函数)作为传送参数。函数工具能够包括形态,这类形态能够启用存在于某处的对照划定规矩。利用的对照划定规矩依附于工具的形态。在本章的前面有一个排序算法的对照函数的例子,以这类体例完成。
5.STL算法的分类
STL算法可分为四年夜类。非变异序列算法,操纵不改动数据布局内容;变异序列算法例改动数据布局内容;相干排序算法能用于排序、兼并和二进制查找等多种算法。最初,STL具有狭义的数值算法,用于盘算数据布局中的元素。
?非变异序列算法:不间接改动其操纵的数据布局的元素。一般,它们查找数据布局中的元素,反省序列元素的等式,盘算序列元素的个数。find和count长短变异序列算法的例子,find算法在数据布局的某个局限中挪动,查找第一个即是给定值的遍历器。而count算法盘算数据布局中即是给定值的元素的个数。
?变异序列算法:修正其操纵的数据布局中的元素。这些算法在容器中拷贝、交换、转换、删除和轮回挪动元素。fill算法是这类算法的一个例子,它的功效是把给定值的拷贝添补到一个序列局限中的一切地位。
?相干排序算法:排序、兼并和查找元素。一样,可以对排好序的序列举行设置操纵,merge算法是一个例子,它将两个已排序局限内的元素放到一个局限内,而且了局不产生堆叠。
狭义数值算法的例子是accumulate,这个算法对数据布局内的某一指定局限的值乞降。
6.利用算法的遍历器
后面已讲过,STL界说了五种遍历器的类:输出、输入、前向、双向和随机会见,算法针对特定的遍历办法计划,以确保优化功能。
比方,find算法能够用于在各类数据布局中查找值,算法其实不体贴容器是一个矢量,仍是一个列表,仍是一个数组。独一的前提是数据布局必需撑持InputIterator,InputIterator的计划确保它撑持的操纵的事情效力。find算法只必要InputIterator撑持的操纵,因而,find算法能高效地事情。
一些算法请求功效更强的遍历器:如sort必要随机会见遍历器(RandomAccessIterator)。供应随机会见是以下降功能为价值的,并影响其他操纵,比方在容器两头拔出元素的操纵。
如今已你有充实的实际常识,上面创建一个组件。


对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。
不帅 该用户已被删除
沙发
发表于 2015-1-18 21:15:13 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-24 15:01:20 | 只看该作者
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
山那边是海 该用户已被删除
地板
发表于 2015-2-1 17:34:00 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
小女巫 该用户已被删除
5#
发表于 2015-2-7 13:28:08 | 只看该作者
ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。
海妖 该用户已被删除
6#
发表于 2015-2-22 08:00:55 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
蒙在股里 该用户已被删除
7#
发表于 2015-3-6 23:50:33 | 只看该作者
Session:这个存储跟客户端会话过程的数据,默认20分钟失效
冷月葬花魂 该用户已被删除
8#
发表于 2015-3-13 23:08:37 | 只看该作者
我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标.
简单生活 该用户已被删除
9#
发表于 2015-3-20 22:45:40 | 只看该作者
以HTML语言整合(HTML负责界面上,ASP则负责功能上)形成一个B/S(浏览器/服务器)模式的网页程序。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表