博文

使用 Visual C++ 2005 的现代语言功能编写更快的代码(1)(2005-12-07 10:28:00)

摘要: Stephen Toub 本文基于 Microsoft Visual Studio 2005 的预发布版本,它以前的代号为“Whidbey”。此处所包含的任何信息都可能会变更。 本文讨论: • .NET C++/CLI 语法 • Interop 技术 • 配置文件指导的优化 • MSIL 优化 • OpenMP 支持 • 增强的缓冲区安全检查 本文使用了以下技术: Visual C++ .NET 2003 和 Visual C++ 2005 对于 C++ 语言的爱好者来说,Visual Studio .NET 2003 中 C++ 编译器的引入绝对令人垂涎欲滴。Visual C++ .NET 2003 中有 98% 的部分与 ISO C++ 标准保持一致,这使它比以往任何版本更为靠近这些标准,而且它还加入了对一些功能(如局部模板专用化)的语言支持。它还包括增强的缓冲区安全检查和改进的编译器诊断功能。C++ 开发人员就像 C# 和 Visual Basic .NET 开发人员一样,可以使用拖放窗体设计器来构建健壮的 Windows 窗体应用程序。该编译器还包含了针对 Intel Pentium 4 和 AMD Athlon 处理器的优化。 如果您对 Visual C++ .NET 2003 感到兴奋不已,您将会疯狂地爱上它的下一个版本 Visual C++ 2005。Visual C++ 2005 为 .NET开发提供了既优雅又强大的新语法支持。它使用的新优化技术已经使 Microsoft 产品的运行速度提高了 30%。它通过新的编译模式来确保 Microsoft .NET 框架通用语言基础结构(Common Language Infrastructure,CIL)的一致性和可验证性,并且具有新的 interop 模型,这不仅提供了本机和托管环境的无缝合并,而且还在跨这些边界的情况下提供了完全控制。该编译器增强了前两个版本中提供的缓冲区安全检查选项,并且还包括了 C++ 应用程序普遍使用的以安全性为中心的的库的新版本。它提供了对 OpenMP 标准以及 64 位平台(其中包括 Intel I......

阅读全文(3189) | 评论:0

关于韩国申请端午(2005-11-25 21:28:00)

摘要:先看下面一则新闻吧:  北京晚报消息:由韩国申报的江陵端午祭巴黎时间24日被联合国教科文组织正式确定为“人类传说及无形遗产著作”。一度沸沸扬扬的中韩端午节“申遗”之争以韩国的胜利而告终,对此,今天上午专家在接受记者采访时称:无形遗产属于全人类共享,韩国申报成功并非坏事。   据韩国联合通讯今天报道,韩国驻联合国教科文组织代表称,由18名专家组成的联合国教科文组织国际审查委员团21日至24日在巴黎的联合国教科文组织举行审查委员会,并在江陵端午祭等64个申报遗产中选定43个为“人类传说及无形遗产著作”。据悉,“人类传说及无形遗产著作”宣布制度是在认识到无形遗产在人类历史上所占价值和保存必要性后,联合国教科文组织于2001年实行的制度。此次也是联合国教科文组织第三批宣布无形遗产名单。   “韩国申遗成功对我们的端午文化不会有什么冲击,无形文化遗产是全人类共享的财富,我们的文化传统被别国认同,我个人认为不是一件坏事,”中国民俗学会理事长、中国社会科学院研究员刘魁立上午在接受记者采访时表示。刘教授介绍,联合国教科文组织对无形遗产申报的要求是每个国家每两年才能申报一项,中国急需保护的无形遗产很多,所以才导致此次韩国抢先申报。   “江陵端午祭其实与我们的端午节不是一回事。”中国民俗学会秘书长、北大教授高丙中在接受记者采访时介绍,韩国的端午祭实际上是由舞蹈、萨满祭祀、民间艺术展示等内容构成,这与中国人吃粽子、划龙舟、纪念屈原是两回事,“惟一的相同点是时间框架,都是在中国的端午节期间举行。”高教授表示,韩国申遗成功实际上给我们带来了很好的启示:他们把传统的文化活动注入了现代的元素,成功地实现了现代转型,并得到了国际认同,对于中国文化遗产的保护有借鉴意义。   围绕着端午节申遗之争,从去年开始至今,在中国学术界和民间都产生了极大的反响。(记者丁肇文) 用什么来形容我现在的心情呢?是失望,气氛,怨恨,无奈……都无法尽情的描述,能做的就是将这一股怨恨化成文字,散播于网上,与华夏文化的拥护者共同纪念着一个让人失望的日子,期待能焕发起我们的民族自尊心,在未来的日子里更加努力! 我们并不能责怪韩国的做法,因为人家做的只是自己该做的事情,维护着自己的文化,只不过占用了本该是属于我们的名字,而现在我们深深地明白端午是我们,若干年以后,当端午成为世界认同的名词之后,还会不会记得最初出现端午的......

阅读全文(6292) | 评论:2

Linux安装之经验心得(2005-11-15 10:47:00)

摘要:这三天创造了我个人历史上的一个记录——三天安装了八次操作系统!三次linux和五次windows Xp,在其中遇到了很多挫折,最主要的就是分区,最后终于安装成功! 第一次、          1、分区,C:   20(FAT32)、D:   10(NTFS)、E:   10(NTFS)、F:   15(NTFS)、G: 5(FAT32)、H: 20(FAT32),可能我的划分有些奇特,为了满足自己的需要嘛,吾见笑。之所以这样分区,是以为Linux和windows采用的是同样的文件格式,并以为最后留两个FAT32的分区,可以用来交换数据,呵呵,想的美!这种想法有很大的问题!          2、安转系统,将windows Xp安装到D盘(扩展分区),一切正常。 第二次、          3、安装Linux,本来以为和Windows安装差不多,想着选个C盘就可以了。进入安装界面,前几步一切顺利,到选择分区时,首先采用手动,无奈,不管怎么搞都是提示挂载点出错,无奈,退回上一步,选择自动分区,此处有三项可选,可是只有格式化整个硬盘的那个可以继续下去,思考再三,为了C++编程,为了Linux,继续。终于,linux安装完成,可是遗憾的是,windows Xp再也找不到了! 第三次、          4、不爽,在这年头,以我的情况,没有Windows还真的很难生活。所以,只能再来一次了,重新安装windows Xp.首先用魔术分区在linux自动分区的硬盘上划分出50G的空间来为Xp服务,然后进入安装过程,选择安装的分区,windows Xp在复制完文件重新启动后,竟然直接显示disk error,无法引导,晕,无奈,有些不知所措,          5、既然已经出......

阅读全文(4543) | 评论:0

为应用程序添加闪屏(splash)功能(2005-11-03 10:26:00)

摘要:创建一个启动窗口,用来显示应用程序的相关信息 为了使该启动窗口再最早时刻被显示,启动窗口最好的位置可以放到InitInstance()中。 步骤: 1、创建一个从CWnd派生的启动窗口类,为方便可以用Class wizard 2、为该类添加Create()成员函数,用来显示相关信息。        void CSplashWnd::Create(UINT nID)       {              m_bitmap.LoadBitmapEx(nID,FALSE);             //make the window at center              int x=(::GetSysytemMetrics(SM_CYSCREEN)-mbitmap.m_Width)/2;              int y=(::GetSystemMetrics(SM_CYSCREEN)-m_bitmap.m_Height)/2;               CRect rect(x,y,x+m_bitmap.m_Width,y+m_bitmap.m_Height);               CreateEx(0,AfxRegisterWndClass  ,0),"",   ......

阅读全文(3355) | 评论:0

Handle command line option(2005-11-02 11:01:00)

摘要:An MFC application can use member function ParseParam() of class CCommandLineInfo to handle some standard flags. For add our's flag with other flags support,we should derive our class and overlaid ParseParam(). 1、create a new CCommandLineInfo class        (1) in the new class, add new member variables for new flags.        (2) overlaid base class member function ParseParam()        (3) ParseParam() implement        (4) more information about CCommandLineInfo list at the end of this article 2、Add the new command class in application        (1) To find ParseCommandLine() in application, and replace CCommandLineInfo  by new class       (2) To make these option aviable in whole application, embed cmdInfo to application and access its member variable.       &nb......

阅读全文(2856) | 评论:0

设定程序窗口初始信息(2005-11-02 09:39:00)

摘要:1、在AppWizard中更改Windos Style 来改变窗口初始是否最大化、最小化,以及是否允许更改。 2、更方便的改变可以在PreCreateWindow()中,用代码实现,如     (1)//centern window at a certain percentage of full screen                #define PRCTG    50/100 //define percentage                int xSize =::GetSystemMetrics(SM_CSSCREEN);// more  information of the function see MSDN                 int ySize=::GetSystemMetrics(SM_CYSCREEN);                             cs.cx=xSize*PRCTG;//resize the  window                 cs.cy=ySize*PRCTG;      &......

阅读全文(2539) | 评论:0

软件开发入门学习的个人看法(2005-09-23 13:26:00)

摘要:踏实
   偶然在网上看到《由C#风潮想起的-给初学编程者的忠告》一文. 其中一个角度:避免“浮躁”,倡导“踏实”的学习方法,我是很认同的,但总觉该文作者标题“-给初学编程者的忠告”太大,所以在其文列出的一些具体的“操作方法”上我认为可以探讨,如同自己在某次公司总结会上就《软件开发,我们积累的是什么?》为题跟同事聊了半个多小时后,其中一个同事提到希望我能继续把这个题目细化,就刚入行的他们具体该如何发展有更“具操作性”的指引,当时我是跟他们说这只是我在这一行呆了5年多的体会,谈“指引”还太远,只是可以提出来大家思考、讨论。
  
不要过度贬低编码
   不要真的认为"不少大师级的计算机技术研究者是不懂编程的",做软件开发编码是最最基础的东西,只有踏踏实实的掌握好这个基础你才有办法往上走,不管做分析做设计做项目管理你都需要能清楚东西是如何实现的?可不可以实现?否则肯定出现大量的:"设计是设计,编码是编码","产品都是代码人员从头到尾实现的","究竟需花多少时间,难度有多大,开发人员说了算","质量/成本/进度全是黑匣子"...现象,如果你是做编码那编码就更重要了:).所以对于有志从事这个行业(软件开发)的个人来说,必须先从"重视编码"开始.过了这一关才能去考虑做系统分析,做项目管理...
   软件开发的各个环节是相辅相承的,分析有分析的重要,设计有设计的重要,编码有编码的重要,测试实施也各有其地位,任何一个环节搞不好就如同我们熟悉的木桶理论,"最薄弱的一个环节制约着其总容量".
   既然编码重要,那该如何学编码?
  
专心学好一门语言
   算算自己用过的语言也不少(括弧里为使用该语言写的比较有代表性的东东),C(dos版的图像/图标编辑工具,96年的《电脑报》有介绍),C++(可自定义方块形状的方块游戏,被收录于99年《软件》杂志的附送光盘上),汇编(DOS汉字系统,97年底完成),PB(学校自动排课/排考模块,98年),ASP(一套web版的企业信息系统,99年),VB(企业信息系统的核心组件,99年),delphi(工作流平台,组件式GIS系统等),Java(De......

阅读全文(2518) | 评论:0

AWK(2005-09-07 11:22:00)

摘要:维基百科,自由的百科全书
AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。 AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。

最简单地说, AWK 是一种用于处理文本的编程语言工具。AWK 在很多方面类似于 shell 编程语言,尽管 AWK 具有完全属于其本身的语法。它的设计思想来源于 SNOBOL4 、sed 、Marc Rochkind设计的有效性语言、语言工具 yacc 和 lex ,当然还从 C 语言中获取了一些优秀的思想。在最初创造 AWK 时,其目的是用于文本处理,并且这种语言的基础是,只要在输入数据中有模式匹配,就执行一系列指令。该实用工具扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行。

尽管操作可能会很复杂,但命令的语法始终是:

awk '{pattern + action}' {filenames}

其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号 ({}) 不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。

gawk 是 AWK 的 GNU 版本。

......

阅读全文(2614) | 评论:0

程序员的四境界、七宗"罪"与七武器(2005-09-03 11:56:00)

摘要:程序员的四个境界
  国学大师王国维先生认为古今成大事业、大学问者,必经过三种境界,第一种境界:“昨夜西风凋碧树。独上高楼,望尽天涯路”;第二种境界:“衣带渐宽终不悔,为伊消得人憔悴”,第三种境界:“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”。一代宗师真是体察入微,寥寥数语,道尽了求道者的心路历程,将一个人由浅尝、迷茫到彻悟的过程尽数概括,可谓入木三分。
  IT行业可谓现在的热门行业,程序员也是很多人羡慕的工作。薪水高,不用东跑西颠,敲敲键盘,看看屏幕,一切工作全都搞定,轻松而方便。果真如此吗?不尽然,实际上,程序员的职业生涯也是一个求道的过程,需要不断的提高和学习,IT行业知识更新之快,常让程序员们有随时掉队的危险,无一日不战战兢兢,不敢稍有懈怠。
  程序员的职业生涯也可分为四个阶段,初级程序员(菜鸟)、高级程序员(熟练工)、系统程序员(高手)、软件大师(大师),其作品也经历四种境界:
  · 可以运行的程序
  · 健壮、高效的程序
  · 结构优美的程序
  · 思想深邃的程序
  程序员的必经第一个阶段都是编写可以运行的程序。很多人的编程生涯是从“Hello World”开始,当第一次按照教科书上的步骤,将源文件编辑完后,编译、连接、运行,在屏幕上显示出“Hello World”时,心中的激动一点也不亚于阿里巴巴打开了宝库的大门。初级程序员的目标一般是让程序能运行起来,他们迷惑于库函数的众多,不知道该用那一个,他们还要学习基本的语法,以使程序编译通过。初级程序员一般不会考虑设计模式、软件结构等问题。记得本人编写的第一个较大的程序是本人的本科毕业论文题目——一个计算机辅助实验系统,开发工具为Turbo C,在DOS下开发(那个时候Windows还不太流行,怎么样,年代够久远吧),整个软件大约7000行代码,在当时已经能干不少事,在DOS下也能显示不少花里胡哨的图形界面,支持中文,支持鼠标操作(那时候在DOS下需要自己处理鼠标事件中断),当时还颇受好评。可是今天再重新温习过去的作品,真有点掺不忍睹,整个软件毫无结构可言,一共分成两个源文件还是由于编译器不支持一个太大的源文件而被迫分开,整个系统就是源代码的简单堆砌。相信每个程序员都需要经历这个阶段,它是程序员职业生涯的开始,没有捷径可......

阅读全文(2829) | 评论:0

程序员与妓女(2005-09-03 11:51:00)

摘要:程序员与妓女     
     1,程序界的高手通常很讨厌微软,妓女界的高手嗯。。这个。。恐怕也如此
    2,都是吃青春饭,不过到人老猪黄后,凭着混个脸熟,程序员可以混个管理员,妓女也行,不过俗称老鸨
    3,妓女靠的本钱是三围,程序员靠的可是四围(思维)
    4,程序员为了拉客,通常会在交易前提供一个DEMO,妓女提供的那叫PHOTO
    5,程序员现在出的活时兴叫吃霸、结霸,妓女大姐一律叫波霸
    6,心不在焉的妓女可以一边工作一边do { beep(1); sleep(9)}until over flo,心不在焉的程序员也可以一边工作一边navigate到成人网站上去
    7,程序员手册:一套好的人机操作界面要求,对于新手,能够一步一步的引导他进入功能,相反对于熟客,能够直奔主题;妓女同样要遵守程序员手册对人鸡界面的规定
    8,妓女在工作中最怕的是临检,程序员最怕的是停电
    9,新上手的程序员叫菜鸟,刚入行的妓女叫雏鸡,都是好可怜的小动物
    10,程序界现在流行OO的方法,虽然在XXXX年前妓女已在床上掌握了O~O~~~的技术
    11,程序员为了拉客,无奈之时,也可以先让客人试玩,妓女当然有时也会先给......

阅读全文(3087) | 评论:0