01 2010 档案
摘要:准备为自己的2D游戏动画系统选择一套给外部使用的接口方式,有如下几种选择:1. 纯C API方式导出,类似于Windows API方式优点:简洁,可以供C/C#乃至其他可以导入C DLL的语言使用缺点:C++的系统转化为C会遇到很多性能以及架构的折损,对于对象控制类功能导出比较多的系统,这种方式简直是噩梦2. C++方式导出,宏方式实现RTTI以及C++反射系统优点:强大,易用。缺点:对象生命周期...
阅读全文
摘要:在我以前学习C、C++、Windows编程的时候,很有一些疑惑,当时找不到人解答,都是过了很多年以后才想通,我想,初学的朋友可能都有这样的疑惑,这里总结出来,希望对大家有参考价值。 1、Windows的窗口和C++的类是什么关系? 没有关系,纯C方式编程,WinMain,也是可以产生窗口的,不是说一个窗口一定要一个类,仅仅是通常这么做而已。 2、Windows的线程和C++的类是什么关系? 没有关...
阅读全文
摘要:结合一些我的学习经历,希望对于想学C++的人有些帮助. 大家有什么好想法望提出我老师最初是从C语言教起的,用的是潭浩强的<<C程序设计>>这本书,那时候命令执行都是在CMD里实现,用的编译器是turboc最经常用到的就是 printf cin 对于效率不是很在乎,只要能执行就好了,连warning都忽略(这个很不应该).后来又学了C++,是清华大学出版的<<C+...
阅读全文
摘要:用Visual C++编写DLL,如果在new project时选了MFC DLL,而后又想写成Regular DLL,即拥有自己的DllMain()入口函数,则在build时会遇到类似如下的link错误:error LNK2005: _DllMain@12 already defined in xxx.OBJ几种解决方案:1, 你只需要在工程设置里面,把WIN32,NDEBUG,_WINDOWS...
阅读全文
摘要:Detours是微软开发的一个函数库,可用于捕获系统API。在用其进行程序开发之前,得做一些准备工作:一.下载Detours 在http://research.microsoft.com/sn/detours 可免费下载Detours,当前的最新版本是Detours Express 2.1 is available for immediate download under a no-fee, cl...
阅读全文
摘要:CxImage是C++实现的功能强大的、能处理多种文件格式的图像管理类。它能够简单快速的实现图像的导入、保存、显示和变换。 为什么使用CxImage u 它是平台无关的 u 它是自由软件、免费的、开源的 u 支持多种平面格式:BMP、GIF、ICO、TGA、JPEG、PCX、PNG、TIFF、MNG、RAS等,还有更多! u 功能强大:几何变换、图像处理、图像格式转换等。 u 使用简单:下面的入门...
阅读全文
摘要:对于程序开发者来说,有两种技术需要我们掌握,一个是技术上的能力,另一个是非技术上的能力。不幸的是,许多程序员过多地关注了技术上的能力,而忽略了非技术上的能力的培养,因此,我们的程序员们经常会有一些很不好的习惯,这里我们例举了程序员们最常犯的5个非技术的错误,与大家共勉。1.- 缺乏团队纪律“Discipline is the bridge between goals and accom...
阅读全文
摘要:内联函数不能为虚函数,原因在于虚表机制需要一个真正的函数地址,而内联函数展开以后,就不是一个函数,而是一段简单的代码(多数C++对象模型使用虚表实现多态,对此标准提供支持),可能有些内联函数会无法内联展开,而编译成为函数。 class Foo {public:virtual void vFunc() const;private:};class Child: public Foo{public:vi...
阅读全文
摘要:很多人把学习C++语言当成学习VC了,我曾经就走过这样的弯路。当学了很长时间的VC后还是得回过头来学习C++语言本身。那么学习C++从何处入手呢? C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类),另外就是模板技术(模板编程或者叫泛型编程是进来非常流行的技术,在C#中虽然还没有对泛型编程的支持,但是相信在将来也一定会加入这一功能),模板是C++中比较复杂的部分...
阅读全文
摘要:论工作: 1.对待薪酬:不管公司加不加你薪水,只要你还在这个公司一天,就请努力专心的做事。 2.对待每一件事:努力认真去做好每一件事。只要你想做,总有法子可以做到的。 3.做好本分工作.技术人员有时候对PM分配自己一些较没技术含量的工作会很不满.记住,都是做事而已.无论怎样,分配到你的工作,请你做好.孔子尚且养过马,薛仁贵尚且当过伙头军.我认为,做好一个茶叶蛋,比做砸了原子弹更有意义。不以技术难度...
阅读全文
摘要:1.vc.net开发的程序,.net程序需要框架支持,没有安装框架的计算机不能运行;2.vc6.0开发的程序比.net的快;3.VC6/VC2003/VC2005/VC2008都支持MFC;4.基于.net的程序功能强大、界面美观,而且还可以跨平台(在WINCE等操作系统上运行)。5.vc.net代表使用了.net的VC,而VC7或VC8也可以不使用.net;VC7或VC8开发的程序,假如使用了....
阅读全文
摘要:1. 编写你所喜爱的游戏 不要人云亦云。只要你和你的朋友喜爱就可以了。 同样道理,不要编写某个游戏主题仅仅因为它当前流行而已。编写你所喜欢的题材, 这样才能激发你的热情。2. 经验是最好的老师 学习游戏编程最好的方法就是阅读大量的游戏程序。玩和分析这些游戏,然后设计你自己的游戏或扩展游戏。我最主要的经验都是角色扮演类游戏,我的许多游戏范 例也来自它们,但思路却适用于所有类型的游戏。我阅读过大量的R...
阅读全文
摘要:作者:金蝶中间件公司CTO袁红岗 不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远。世界上并没有成为高手的捷径,但一些基本原则是可以遵循的。1. 扎实的基础。数据结构、离散数学、编译原理,这些是所有计算机科学的基础,如果不掌握他们,很难写出高水平的程序。据我的观察,学计算机专业的人比学其他专 业的人更能写出高质量的软件。程...
阅读全文
摘要:先看看alvin_lee 朋友做的解析,我觉得还是很正确的,从算法角度阐述了他们之间的问题!实际上这个问题不光C++会遇到,其他所有语言的标准容器的实现及选择上都是要考虑的。做应用程序你可能觉得影响不大,但是写算法或者核心代码就要小心了。今天改进代码,顺便又来温习基础功课了。 还记得Herb Sutter那极有味道的《C++对话系列》么,在其中《产生真正的hash对象》这个故事里就讲了map的...
阅读全文
摘要:跨进南大校门的第一天,我知道,我自由了。 父亲是个对新事物有强烈兴趣的人,村里第一台电视机是他自己组装的,当时全村人都跑过去看,电视机只能收到一个台,CCTV。座机电话是第一个装的。大哥大刚出现的时候,他也是第一个买来用的,那个时候的移动电话真是贵得离谱。父亲告诉我的第二件最重要的事情是:遇到任何问题,找书去就行。他在自己的专业中完全是自学的。在不属于自己的专业中(后来买了电脑之后需要学习如何架设...
阅读全文
摘要:在上次测试完成后,有一个网友mm304321141 (明儿)在留言上对测试数据进行了质疑,先谢谢他的指正。 我的确不知道Visual Studio C++ 默认的Dinkumware STL hash_map的hash_compase有两个参数bucket_size 和min_buckets ,我自己实现的时候类是从stdext::hash_compare继承的,忽视了这两个参数,而上次测试的时候...
阅读全文
摘要:写了一个模块客户端和服务器共用,为了加快查询速度,用了hash_map,今天一个兄弟老卢测试说将其中的hash_map替换成map后速度更快,有点晕。自己写了一段代码在Windows下用Visual Studio C++测试hashmap。首先说明,hashmap目前还没有进入C++的规范,但是大部分厂商都实现了这个容器,测试的hashmap有两种:l Visual Studio 2003自己默认...
阅读全文
摘要:1.析构函数是可以显式调用的。2.new也可以用来动态开辟有虚函数的类。class Foo {public:virtual ~Foo() {cout<<"the destructor of Foo"<<endl;}virtual void display() const { cout<<"display class Foo"<<endl; }priv...
阅读全文
摘要:在写代码的时候,即使编程老手经常会遇到一个不知道如何抉择的事情,面对查询的需求如何选择容器,容器的大小等因素也会困扰我们的选择。为什么呢?新手面对查询往往会直接选择map,因为map是内部是支持查询函数的,但老手知道map是通过复杂性换取查询的性能的(map的实现往往是红黑树),那如果要保存的数据个数不多呢,是否值得使用map这样的容器呢?最近两天写了几行短小的代码,针对这个问题进行了一测试,测试...
阅读全文
摘要:最近在公司写了一大堆复杂的界面,终于体会到了前辈们那种上刀山下火海的感觉了。做完了之后回头想想,MVC还是有道理的。 什么是MVC?其实可以简单的理解为一个有UI的程序可以划分为三个部分:数据层、逻辑层和应用层。当然这些名字是我乱起的。数据层顾名思义就是用来读写数据的地方,譬如说一个电话本的文件。逻辑层就是用户在界面上的操作的抽象,譬如说要通过名字来查找消息啦,给一个关键字求得筛选后的电话信息列表...
阅读全文
摘要:OGRE引擎 OGRE官方网站:http://www.ogre3d.org/ 关于OGRE(翻译自http://www.ogre3d.org/index.php?option=com_content&task=view&id=19&Itemid=79) 一、什么是OGRE? OGRE(Object-Oriented Graphics Rendering Engine...
阅读全文
摘要:准备为自己的2D游戏动画系统选择一套给外部使用的接口方式,有如下几种选择: 1. 纯C API方式导出,类似于Windows API方式优点:简洁,可以供C/C#乃至其他可以导入C DLL的语言使用缺点:C++的系统转化为C会遇到很多性能以及架构的折损,对于对象控制类功能导出比较多的系统,这种方式简直是噩梦 2. C++方式导出,宏方式实现RTTI以及C++反射系统优点:强大,易用。缺点:对象生命...
阅读全文
摘要:本文介绍一下一个应用的游戏服务器的架构和演变 游戏服务器的作用在于满足在线玩家的需求,实现账号的验证,登陆,玩家在游戏世界的一系列逻辑操作和验证。在此基础上,一个好的架构,可以提升效率,在实现逻辑需求的情况下达到百万级的同时在线数也不是不可能。 我们先从最搓的最简单的结构看起 CLIENT ---------- SERVER --------- DBSYSTEM 就是一个很简单的 C/S系统 ...
阅读全文
摘要:接着一继续,其实写本文从内行技术角度来看,本身就没什么技术含量,但是俗话说的好,隔行隔山,内行看门道,外行那啥什么,反正就是想触碰这玩意,但是又没搞过的人看的。反正都是随便乱写了,爱看的看,准备写个功能模块大概 再写个架构得大概,而后就去从网络包开始搞个最简单最轻量的小架构,力图让知道编程是啥的就能在上面搞东西 还是继续谈功能模块。 一、还有个 AI模块,这个可不能忘啊 不过要注意,我这里提到的...
阅读全文
摘要:转自http://www.cppblog.com/ziyebuboka/ 游戏服务器在网游上的作用不容考虑,游戏能做大到什么程度,还是有很大的依靠的,这篇文章先从功能模块的角度来谈一个完善的游戏服务器需要实现哪。 一:游戏服务器的作用:连接各个网游客户端,实现各客户端的通信,连接,数据操作 二:先从大分类上来:游戏服务器按一般架构来说具备1 1:登陆验证注册和账号有关的所有操作的服务器 我们简称...
阅读全文
摘要:要判断一个程序员是不是好的程序员,主要看他写的代码,因为程序员最重要的事是写代码。即便不去理解代码的意图,只要看一眼,好的程序员写的代码与差的程序员写的代码基本上就可以看出来。好的程序员写的代码,整洁而规范,视觉上自然有一种美感。空白错落有致,注释恰到好处,命名和排版遵守统一的规范。差的程序员写的代码则经常出现过长的函数,前后不一致的命名方式和排版,过深的嵌套结构,非常复杂的表达式,随处可见的数字...
阅读全文