博文
VC6.0编译选项说明(2007-02-13 12:06:00)
摘要:VC6.0编译选项说明
点击数:92 发布日期:2006-12-14 14:22:00
【收藏】 【评论】 【打印】 【编程爱好者论坛】 【关闭】
此帖来自网络(仅供学习)
InitInstance
Compiler Reference
Home | Overview | How Do I
CL.EXE is a 32-bit tool that controls the Microsoft C and C++ compilers and linker. The compilers produce Common Object File Format (COFF) object (.OBJ) files. The linker produces executable (.EXE) files or dynamic-link libraries (DLLs).
For information on specifying options, see Set Compiler Options. ......
Windows编程基础 (2007-02-13 12:05:00)
摘要:简介
本文目的是介绍Windows编程基础。在本文结束时,你应该能够很好的工作了,虽然可能是简单的WIindows程序。你需要有C语言的基础知识,我很少将C++的代码扩充到程序中。当然,由于Windows本身就是面向对象的,一点类的知识是不会对你有什么损害的。如果你不熟悉C++,没有关系,我想你还是能从我这里学到大部分的东西。所有的程序代码都通过了Microsoft Visual C++6.0的编译,如果你还没有合适的编译器,弄一个同我一样的好了,它还是很棒的。开动吧!
开始
多数的Windows程序都需要Windows.h和Windowsx.h这两个头文件,要确保使用它们。当然,你还需要其它的标准的C的头文件,象stdio.h,conio.h等。除了这些,你还会经常看到在程序的开始有这样一行代码:
#define WIN32_LEANAND_MEAN
它表示Windows的头文件中将拒绝接受MFC的东西,这将加速你的build时间。如果你从没有打算应用MFC在你的游戏编程中,那就使用它吧。如果你以前从没有看过这种声明类型——在#define后,直接加上一个“单词”,那么它的作用就是有条件编译。看看下面的例子:
#ifdef DEBUG_MODE
printf("Debug mode is active!");
#endif
意思是:如果程序的开始包含#define DEBUG_MODE,那么就printf(),否则退出。这个对于你跟踪程序的逻辑错误是很有帮助的。
WinMain()函数
DOS下的C语言从main()开始,Windows下的C语言从WinMain()开始,一个空的WinMain()函数是这样的:
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
return(0);
}
一个函数即使什么也没做,也应该返回一个值。是的,有好多东西我们不熟悉。首先的首先,WINAPI是个什么声明?WINA......
蓝牙和红外简介(2007-02-13 12:04:00)
摘要:
什么是蓝牙?
蓝牙(Bluetooth)是由东芝、爱立信、IBM、Intel和诺基亚于1998年5月共同提出的近距离无线数据通讯技术标准。它能够在10米的半径范围内实现单点对多点的无线数据和声音传输,其数据传输带宽可达1Mbps。通讯介质为频率在2.402GHz到2.480GHz之间的电磁波。
蓝牙通讯技术的特点
■蓝牙工作在全球开放的2.4GHz ISM(即工业、科学、医学)频段;
■使用跳频频谱扩展技术,把频带分成若干个跳频信道(hop channel),在一次连接中,无线电收发器按一定的码序列不断地从一个信道“跳”到另一个信道;
■一台蓝牙设备可同时与其它七台蓝牙设备建立连接;
■数据传输速率可达1Mbit/s;
■低功耗、通讯安全性好;
■在有效范围内可越过障碍物进行连接,没有特别的通讯视角和方向要求;
■支持语音传输;
■组网简单方便
蓝牙通讯技术的用途
蓝牙技术是一种新兴的技术,尚未投入广泛应用,目前许多蓝牙设备还处于实验室试验阶段。但可以肯定的是现在多数具有红外无线数据通讯功能的设备,在将来一样可以使用蓝牙技术来实现无线连接。同时蓝牙技术的网络特点和语音传输技术使它还可以实现红外技术无法实现的某些特定功能,如无线电话、多台设备组网等等。
厂家和消费者的认同度
蓝牙技术已获得了两千余家企业的响应,从而拥有了巨大的开发和生产能力。蓝牙已拥有了很高的知名度,广大消费者对这一技术很有兴趣。
植入成本
目前市面上的蓝牙设备还是比较少见。USB接口蓝牙适配器、蓝牙PC卡和蓝牙手机已经有了面向市场的产品,售价都很高。由此可见蓝牙早期发展阶段植入成本还是比较高的。但估计批量化后植入成本可在30美元以下。在蓝牙技术发展成熟的时期,植入成本应该可以控制在10美元以内。
缺点
蓝牙是一种还没有完全成熟的技术,尽管被描述得前景诱人,但还有待于实际使用的严格检验。蓝牙的通讯速率也不是很高,在当今这个数据爆炸的时代,可能也会对它的发展有所影响。
目前主流的软件和硬件平台均不提供对蓝牙的支持,这使得蓝牙的应用成本升高,......
61条面向对象设计的经验原则(2007-02-13 12:03:00)
摘要:61条面向对象设计的经验原则
“你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起。”
----------Arthur J.Riel
(1)所有数据都应该隐藏在所在的类的内部。
(2)类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。
(3)尽量减少类的协议中的消息。
(4)实现所有类都理解的最基本公有接口[例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等]。
(5)不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。
如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。
(6)不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。
(7)类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要么只使用另一个类的公有接口中的操作。
(8)类应该只表示一个关键抽象。
包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响 .
(9)把相关的数据和行为集中放置。
设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。
(10)把不相关的信息放在另一个类中(也即:互不沟通的行为)。
朝着稳定的方向进行依赖.
(11)确保你为之建模的抽象概念是类,而不只是对象扮演的角色。
(12)在水平方向上尽可能统一地分布系统功能,也即:按照设计,顶层类应当统一地共享工作。
(13)在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。
规划一个接口而不是实现一个接口。
(14)对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。
(15)对包含太多互不沟通的行为的类多加小心。
这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。
(16)在由同用户界面交互的面向对象模型构成的应用程序中,模型不应该依赖于界面,界面则应当依赖于模型。
(17)尽可能地按照现实世界建模(......
你不知道的史玉柱--巨人往事回忆(2007-02-13 12:02:00)
摘要:
最近陆续看到很多史玉柱的采访报道,还有刘韧也如愿地采访了这位安徽老乡
激起了我关于这位传奇人物的一些记忆,和大家分享一下:
1)史玉柱是程序员出身,他的主要编程语言是汇编
我是92年到巨人集团,那时公司总部在珠海,大部分是软件开发人员。
公司名头已经很响,巨人汉卡也出了三版,销售非常好。前两版的主要代码就是老史写的,
不过我到公司时,他已经基本不写程序了。
有一天我正在调试程序,老史路过,突然兴致来了要显显身手,来帮我调试程序,上来就要调出sdebug,
我在一旁看得发晕,说:这太原始了,我们现在都不用这个,调试都用softice。老史很郁闷地就走了。
2)名言:“林彪20多岁当军长”
现在回头来看,我在巨人虽然年头不长(92年到95年整三年),不过资格还是很老:-)
巨人有很强的企业文化,员工大都很年轻,23,4当部门主管,25,6当副总很普遍
老史常说:“林彪20多岁当军长,现在为什么出不来年轻的将军,不是没有能力,是没有机会”
(为了写这篇BLOG,查了一下很牛的林彪经历:18岁的黄埔军校四期生、21岁的团长、24岁的军长)
所以年轻人在巨人上得快,我也是到公司不足半年就成为部门经理,22岁。
现在互联网领域不少80后创业者翻江倒海,再次印证”时势造英雄“
3)疯狂的游戏玩家
2004年7月巨人在上海搞15周年聚会,离开的巨人同事请了一,两百人回去,我也赶去参加。大会上请我发言,我还记得当时说:“讲三句话,第一是感谢巨人,给了我们成长的舞台;第2是祝福巨人更好;第3是希望,巨人从软件起家,希望老史还能重回IT” 赢得全场掌声
下来老史就对我说:“我已经想好了,是要重回IT领域” 做什么,后来大家都知道了。
老史是一个非常疯狂的游戏玩家,在他98年失意的时候,他就开始大玩游戏。所以虽然他进入游戏领域不长,但他
可能是游戏公司投资人中唯一的真正玩家。
图片集(以下照片来自巨人15周年聚会宣传资料)
巨人集团风光一时
国家领导人经常关心是民营企业死亡原因之一 (老史事后总结)
1997年被迫上了喜马拉雅(发现巨人宣传文案上有错别字--市场部失职啊)
浴火重生的史玉柱
(根据巨人原同事,豪杰创始人梁肇新-梁大师命理推断--老史还会火下去......
程序员学习的革命,教你如何使用大脑(2007-02-13 12:00:00)
摘要:程序员学习的革命,教你如何使用大脑
很多人搞技术,还有很多转行搞技术,搞了一段时间终于发现,自己不适合作技术,又退了回去。要我说其实就是用脑方式的问题,真的学会适当的用脑方式,编程编起来才得心应手,才能找到编程的快乐。
有时候,我们问到很多高手详细的技术问题,他们马上用程序给你实现出来,而且运行无误,这应该是左脑高手。左脑:是作抽象化符号处理的。
而另外一些高手,我们问他们请教设计方案的时候,简单的在纸上勾勒几笔,大致的设计方案图就呈现出来,之后的check,他多半不看你程序,只让你给他讲讲大框儿便能发现问题。这样的的应该是右脑高手,右脑:形象化分类处理,我公司以前的老板是技术出身,每次检查我的程序的时候,都要让我给他讲程序,他从来不看我的代码。人家讲话,你的程序在我这里讲明白了才算通过,连你自己都想不通,那就别上手,想明白了再说。
当然,左脑和右脑结合是最好的方式,但是现代人对右脑的应用没有得到很好的开发,人刚生出来的时候最开始发育的是右脑,之后的3年中主要也是使用右脑,然后才是逐渐的在右脑和左脑架起一个沟通的桥梁,扶助左脑的建立,随后左脑逐步的完善。随着学校的教育,左脑的使用频率越来越高,比例上成年的使用左脑远远大于右脑。但是值得注意的是,右脑的信息存储容量是左脑的100万倍,如果得不到很好的右脑利用,那么岂不是浪费了很大的资源。
另外,论坛上,有人调查过,编码人员每天要有多少代码量,剩下的时间在干什么?平均是150行左右,当然干外包的要多一点。不过,星星多的,基本每天编程的时间不超过工作时间的20%,剩下的时间在思考,或者说这些时间在大脑里面勾勒出来程序的图,也就是常说的画脑图。看来很多大牛,在用脑上,右脑的使用还是高于左脑的。
对于画脑图这个概念,又叫做思维导图、心智地图,心像图,心智图,Mind Map,Mind mapping, 可以视之为一个树状图或分类图。不要一行行地作记录,而是画脑图。用树状结构和图像再辅以颜色、符号、类型和关联来画脑图。脑图法,是由托尼·布赞发明的一种方法。在他杰出的新著《脑图之书—发散性思维》(TheMindMapBook—RadiantThinking)里,有对这种方法很好的介绍。
顺便说一句,编程中什么语言好,这是个历来已久的话题,也没有必要去深究。入门打好编程基础以一本常用语言做实现手段(一般都选......
《程序员》专访 SOHU研发团队畅谈开发经验(2007-02-13 11:58:00)
摘要:《程序员》专访 SOHU研发团队畅谈开发经验
林凡:我是98年进到清华计算机系的,在02年毕业,在学校期间可能也尝试过很多东西,包括在99年那会也工作过,但是大家那会都不认识,最后可能我自己的目标还是要去做一些研究,做一些自己的事情,那02年就申请自己出国,在美国的大学自学,因为我老婆当时没出成,就回来了,当时也没有定下来完全不去,当时做过开发硬件的产品,红外那种感应的温度计,就是非典的时候,过那个门就会测温度的那个系统就是我作的,也有跟别人合作过管理软件的开发,到03年8月份的时候,才过来做引擎,做着做着就越来越有意思了,然后到04年就留到SOHU了,到现在为止也做过三年多时间了。
闫辉:那你现在负责搜索引擎这一块是怎么样的?介绍一下你自己吧?
杨洪涛:恩,我叫杨洪涛,我在做一些桌面软件的设计,还有桌面的产品。
闫辉:那是输入法?那你以前的经历是什么?
杨洪涛:我的经历比他单纯的多了,也是从清华呆了6年半,然后读硕士的时候,同时也出来做一些搜索相关的,起点跟林凡也差不多,然后再作搜索团队什么的,当时只有十几个人就开始工作,到现在也是工作了三年多的时间。
刘洪洁:就是说跟着现在商业的发展,需要技术团队提供好的需求,但是有的时候就是商业跟技术团队相矛盾,你们平时是怎么样处理这个事情的呢?就是让你们作的事情可能会实现不了?你们是怎么实行的呢?
杨洪涛:这是一个复杂的问题。
闫辉:就是你们作输入法的老板的目标是什么?比如你们要作从技术角度怎样去作这个产品?而商业是从这个角度之前怎样考虑这个问题?
杨洪涛:我个人对这个事情的看法就是不能够那么单纯的独立存在的,他一定是服务于市场需求或者商业上的要求也好,所以我觉得我没有把他理解成一种矛盾,我没有看到里面太大的冲突,技术做得好与不好,就是说我创造的商业价值的体现。
王小川:我讲一下,就是一方面来讲就是提倡技术驱动,对时间金钱相对来说就是收拾的局面,第二种来讲就是提高产品的角度,不是看那种产品有需求而是来填充产品,就是这个产品本身有许多的发言权,而产品之间就会有交换是不同的。
闫辉:你......
李开复谈工作:不要成为“紧急”的奴隶(2007-02-13 11:57:00)
摘要:李开复谈工作:不要成为“紧急”的奴隶
事分轻重缓急,因此不要把全部的时间都去做那些看起来“紧急”的事情,一定要留一些时间做那些真正“重要”的事情。每天管理时间的一种方法是,早上定立今天要做的紧急事和重要事,睡前回顾这一天有没有做到两者的平衡。有那么多的“紧急事”和“重要事”,想把每件都做到最好是不实际的。
show_ads_zone(13);
最近有朋友问我,为什么你可以每天工作那么久的时间,在没有周六和周日的情况下,依然保持良好的工作状态和身体状态?这是个好问题,很多人辛苦工作,可总是觉得自己没有成就感或者疲于奔命。如何长时间工作并且保持效率?我愿意将自己的心得与大家分享。
我以前读博士时,基本上一天工作16小时。如何在艰苦的工作中,激励自己、让自己能做到更多从而发挥自己的潜力,我认为大家应该考虑的是:要做你真正感兴趣、与自己人生目标接轨的事情。
我发现我的“生产力”和我的“兴趣”有着直接的关系,而且这种关系还不是单纯的线性。如果面临我没有兴趣的事情,我可能会花40%的时间,但是真正产生的结果可能只有20%的工作效率;如果遇到我感兴趣的事情,我可能会花100%的时间而得到200%的工作效率。
其次,不要成为“紧急”的奴隶。要关注“关键”的问题。事分轻重缓急,因此不要把全部的时间都去做那些看起来“紧急”的事情,一定要留一些时间做那些真正“重要”的事情。管理自己时间的问题,尤其是要分清何为“紧急的事”、何为“重要的事”。
我这里有几个辅助的建议:第一,排序。每天对该做的事排好优先次序,并按照这个次序来做。我感到在工作和生活中每天都有干不完的事,唯一能够做的就是分清轻重缓急。有的年轻人会说“没有时间学习”,其实,换个说法就是“学习没有被排上优先级次序”。
第二,时间管理与目标设定、目标执行具有相辅相成的关系,时间管理与目标管理是不可分的。每个小目标的完成,会让你清楚地知道你与大目标的远近,你的每日承诺是你的压力和激励,每日的行动承诺都必须结合你的长远目标。所以,要想有计划地工作和生活,需要你管理好自己的时间。这一点说起来容易,但做起来就不那么简单。
第三,在时间管理中,必须学会运用80%∶20%原......
中国十大经典评论网站(2007-02-13 11:54:00)
摘要:中国十大经典评论网站
第一名:新华网言论——网址:http://www.xinhuanet.com/comments/sh.htm
特色:信息量大,栏目丰富多彩。
文章质量:★★★★★
图片质量:★★★★★
栏目合理性:★★★★
阅读舒适性:★★★★
页面美观度:★★★★★
更新速度:★★★★★
访问速度:★★★★★
得分:33
第二名:人民网观点频道——网址:http://opinion.people.com.cn
特色频道:报系观点 媒体言论 一语惊人 网友留言 图说世象
文章质量:★★★★★
图片质量:★★★★★
栏目合理性:★★★★★
阅读舒适性:★★★
页面美观度:★★★★
更新速度:★★★★★
访问速度:★★★★★
得分:32
第三名:评论观察——网址:http://observe.icxo.com
特色:非常注重文章质量,都是精选。
文章质量:★★★★★
图片质量:★★★★★
栏目合理性:★★★★
阅读舒适性:★★★★
页面美观度:★★★★
更新速度:★★★★★
访问速度:★★★
得分:31
第四名:和讯评论—网址:http://opinion.news.hexun.com
特色:以财经金融为重点,商业及社会方面关注不够。
文章质量:★★★★★
图片质量:★★
栏目合理性:★★★★★
阅读舒适性:★★★★
页面美观度:★★★★
更新速度:★★★★★
访问速度:★★★★★
得分:30
第五名:搜狐评论——网址:http://star.news.sohu.com
特色:设有专门的IT、娱乐及体育栏目
坚持开源软件的创新之路--陆首群 (2007-02-13 11:53:00)
摘要:坚持开源软件的创新之路--陆首群
我国IT产业的创新工作
我国是全球IT产业发展的后起者,我们肩负为我国IT产业生存、发展和提升而搏弈的历史重任。走自主创新之路,将是这场搏弈胜出的关键。
集成电路和软件是IT产业的两个支柱。近年来国内围绕这两个支柱产业的创新历程为:
在集成电路方面,国内自主开发了中低端通用微处理器(CPU)、芯片集成系统(SOC)和数字讯号处理器(DSP)等芯片,虽然这些芯片的集成度还较低,大约比国际高水平还差一个数量级(如龙芯II号相当于奔腾IV中档,其集成度约为10的7次方个晶体管,而国际水平为10的8次方个晶体管),但毕竟我们从无到有,完成了上述一系列芯片开发创新的全过程,即完成了科研创新、设计创新,以及工具创新、工艺创新和工程创新全过程(必须指出,工程创新的难度比科研创新的难度要大得多,有人预测工艺创新难度约为设计创新难度的10倍),但我们毕竟在创新全过程道路上走了一回,突破了国外对工艺技术的严格控制,积累了自己非常宝贵的工程经验。集成电路的创新有了良好的起步。
国内软件创新又如何呢?
系统软件是最基础、最核心、创新难度也最大的软件,我想可将它作为软件创新的代表。系统软件一般为操作系统、数据库、编译器和工具、编程环境、中间件等,其中操作系统又在系统软件中处于龙头地位。
中国要自主开发操作系统或系统软件,难度很大,必须走开源软件创新之路,从开源软件创新中找机遇突破;而要进行开源软件的创新必须实行体制创新。
目前国内虽然推出了几款Linux操作系统发行版,但自主创新的技术含量不高,总体上还处于学习模仿阶段,缺乏深层次的研发能力。在先导的社区开发创新(即“集体开发”、“合作创新”)阶段,国内个别人虽然曾向国际开源社区递交了诸如“Linux虚拟服务器(LVS)”、“入侵检测系统(IDS)”等修改的软件包,但作为社会或企业的志愿者向国际开源社区的贡献还属凤毛麟角;而在后续的企业开发创新(即“自主开发”、“自主创新”)阶段,国内企业一般尚未能把握好工程化实现技术,工程经验很少。有人说,“中国系统软件的开发创新面临着一个进退维谷的境界”,这样的估计似乎过于悲观。我认为,中国开源系统软件应该从模仿走向创新,在“合作创新”基础上扩大“自主创新”。
为了实现......