分类: C/C++
2010-09-19 20:42:19
来源:雨下桐梧 作者:Ghostex 等级:精品
发布于2005-12-06 22:33 被读5371次 【字体: 】 |
今天有点空,研究了一下CSP,有一点不大不小的收获,现在拿出来献一下丑。用个有点搞噱头的标题是因为在网上原来有就这么一篇文章,借个标题聚点人气,呵呵。而我即将要介绍的东西,的确是比较有创意的,并且文章有一段话是引用里面的,所以用一下这个标题也不足为过吧,言归正传,下面开始。
Hmm...What is CSP? 咳.....关于CSP的概念和背景,我实在懒得写了,请允许我摘录一段: --------------------------------------------------------------------------- 这个CSP不是CSP(Commercial Service Provider)即商业服务提供商,CSP不是Client/Server Program,也不是Chinese Super Programer,更不是CS Player,那么什么是CSP呢?在说明什么是CSP之前,先说明什么是“骇人听闻”,一说到“骇人听闻”,你可能就想到了是什么坏事吧,其实不一定,应该说就是前所未闻的事说严重一点就是“骇人听闻”了。在每一本关于asp, php, jsp, asp.net书上都告诉你,做网站不可能使用C++,真的吗?这个CSP偏偏就是C++ Server Pages的简称,和asp、jsp类似,属于一种Web应用扩充的脚本语言,可以用来编写网页代码。其对应的文件名是".CSP"。 (下面的文字部分来源于《CSP开发者手册》) CSP使用C++语言作为脚本的语言,和asp、jsp、php等不同的是,CSP不是解释执行的脚本,而是真正编译后执行的脚本。因此和其它脚本语言相比较,CSP执行速度和效率都要高一些,由于使用标准的动态连接思想,因此CSP可以被用户非常方便的扩充,对于复杂的或者保密要求高的应用,完全可以通过CSP扩展来完全隐藏实现的细节。 --------------------------------------------------------------------------- antigloss 插嘴说: CSP Engine 下载地址: --------------------------------------------------------------------------- 好了,回到主题上来。现在的首要任务是:如何使用CSP写页面呢? 在场的各位会写ASP页面的有多少人呢? 嗯,好,还挺多的嘛~~~~那我就继续了。 大家都知道在ASP中写代码是要在 <% 与 %> 之间的部分写的,CSP也是如此。不过少许的差别还是有的。这个差别体现在: 1.CSP对大小写敏感。因为这是C++啊,会C/C++语言的人都知道。 2.在CSP的体系中,有一个特殊的代码段标志:<%! %>。 仔细看,没错,就是写在 <%! %> 之间,在第一个%后面有一个!,这是作为全局变量和自定义函数代码块的标志,声明结构体也要在这里。在一个CSP页面中,所有的自定义函数的实现一定要放在<%! %>之间。而其它的代码则可以像ASP代码一样在页面的各处随意穿插安放。只要在<% %>中就行。 在了解这些细节之后,我们就可以开始写页面了。 我先给出一个简单的例子,然后再仔细给大家分析一下: <html><body> 访问这个CSP页面,你会得到一个显示如下内容的页面: 0 : 欢迎来到CSP的世界! It is over! 大家都学过C语言吧,看看上面的语句(不是吧?你C语言挂了?!)。变量声明与循环我就不多讲了,有两句得说一下: 1.sprintf(s,"<br>%d : 欢迎来到CSP的世界!",i); 这句是把我们要显示的字符串复制到缓冲区 s 中去。实现这个功能的函数是:sprintf 。是不是觉得和C语言中的 printf 很像呢?没错,它实际上与printf就是同一族的(其它的还有wsprintf , fprintf 等等。这里先不做讨论。)printf的任务是把字符串输出到屏幕,而sprintf则是把字符串输出到内存中的一块区域,以供别的代码使用。它的的用法 和printf类似,都是要通过%d等一些占位符来实现格式化输出。当页面执行完这一句之后,就把“0 : 欢迎来到CSP的世界!”这样的字符串放到数组 s 中了。 2.Response.Write(s); 这一句对于经常进行ASP编程的同学应该相当熟悉吧。它的主要任务就是把刚才我们得到的字符串从内存中取出来,再写入服务器的响应,进而显示在你的浏览器上。如果你已经能够正确地显示出结果,那么恭喜你,你已经入门了! 下面介绍一下在CSP中可以使用的数据类型以及可以直接使用的基本类,还有很实用的功能类。 char 以上类型支持 const 关键字。 以下是基本类: 这三个类是对数据库操作的封装: 以下是功能类: 下面这几个是模板类(这确实让我很惊奇): 写了这么多,好累啊。也不知道有人看没???对于那个为什么会有关于<%! %><%!...%>的规定的原因,我改天会仔细阐述的。但愿这个“改天”不会太长,呵呵。 本文乃网上搜集得来,其版权归原作者和原出处所有。如有侵犯版权之处请,我将马上进行处理。 |