11 2010 档案
摘要:这是今天和校招新同事交流时的总结,希望校招新同事能够回顾,也能够写出自己的总结。一、什么是代码高手?你怎么证明自己是代码高手?知道许多代码技巧、JS炫彩技巧的人大有人在。你知道多少个.net函数,这一点都没有意义。你知道多少个新鲜IT名词,多少技术介绍,这也没有意义。做,真正做一个原型,做一个项目,解决你手头棘手的问题,这才有意义。1、快速准确的理解别人说的-〉2、快速的开发,还准确的反映了别人的需求-〉3、稳定,最少出BUG-〉4、高性能,10万条记录你能顶住,1000万条记录你能顶住吗?这就是技术功底的考验5、这还不够,你的代码是否能让别人快速的理解了6、你的代码是否能比较容易的接受不同客
阅读全文
摘要:基本的基本知识,今天跟服务器ZJ调试消息的收发的时候,有个bug,挑来调去用log,最后检查出来是这2个小错误。。。发现工作后基础知识有遗忘~~~~特记下来。1. switch_case 语句,如果要多个case执行同一句语句要写成:case A:case B:case C: do_something(); break;不能写成:case A: B: C: do_something(): break;就算你写错了,编译器也不能帮你检查出这个错误(我用的VS2005)。2. static 变量的应用,只有在第一次时才赋值,以后就不赋值了。我在程序中写成了static uint32 msgT...
阅读全文
摘要:网游UI解决方案的选择作者 鸣·铭转载请注明出自http://www.mobilegamebase.com由于新项目动工,UI方面需要确定方向,所以最近纠结于各种解决方案的选择。以下是对各方案的比较,仅供参考,希望对同样纠结于此的朋友有所帮助:)1.沿用当前的UI公司是从2D游戏起家的,2D游戏本身就相当于一套庞大的UI,所以这方面有所积累。这套UI系统至少是经过几十万玩家测试,稳定性自然不必说,而且移植到 3D游戏后,绕过Ogre,使用DX直接绘图绘文字,速度非常快,而且文字可以轻松实现多种字体,以及加粗、斜体、下划线等效果,所以继续沿用似乎是比较好的选择。但是它同样存在问题,因为
阅读全文
摘要:原文作者:Jake Simpson 译者: 向海 Email:GameWorldChina@myway.com 第1部分: 游戏引擎介绍, 渲染和构造3D世界 介绍 自Doom游戏时代以来我们已经走了很远。 DOOM不只是一款伟大的游戏,它同时也开创了一种新的游戏编程模式: 游戏 "引擎"。 这种模块化,可伸缩和扩展的设计观念可以让游戏玩家和程序设计者深入到游戏核心,用新的模型,场景和声音创造新的游戏, 或向已有的游戏素材中添加新的东西。大量的新游戏根据已经存在的游戏引擎开发出来,而大多数都以ID公司的Quake引擎为基础, 这些游戏包括Counter Strike, Te
阅读全文
摘要:FreeType是一款字体服务库,它支持多种字体,并且提供高效,高质量的文字。freetype相关介绍见:http://blog.csdn.net/ganxingming/archive/2006/06/05/774796.aspx1, 编译FreeType解压后进入./include/freetype,复制config到当前文件夹,随便去个什么名,这里我用custom_config然后进入 ./builds/win32/visualc这里是vs工程,因为FreeType的支持相当广泛,有很多我们不需要东西,因此需要重新编译FreeType。而刚才我们复制的文件夹中,就是FreeType的可定
阅读全文
摘要:1、专注。要选择一个平台,一个行业,然后在这个领域内专注一段时间(最少要6年)。我现在应该是linux 上C/C++开发,要专注这一领域。我的一个同事做了三年,后来跳槽到HW后转java了,可惜了。2、深入。深入的了解我的这个平台,以及语言,行业。比如,我要能掌握linux操作系统,linux内核;深入掌握C/C++;掌握通信行业知识。3、扩展。“当你开始掌握当前的平台,要开始学习独立于平台的技能,比如模式设计、分布式系统设计、软件架构和性能等。在你取得进步时,你将要花更多的时间来学习这些技能。这是好事。因为这些技能不受平台限制,更容易转移新的技术平台”。对我来说,这些技能是和平台学习同步进行
阅读全文
摘要:让我们假设有一个支持默认构造函数以及从一个double构造和赋值的Widget类:class Widget {public: Widget(); Widget(double weight); Widget& operator=(double weight); ...}现在让我们假设我们想建立一个从int到Widget的map,而且我们想有初始化有特定值的映射。这可以简化为:map<int, Widget> m;m[1] = 1.50;m[2] = 3.67;m[3] = 10.5;m[4] = 45.8;m[5] = 0.0003;实际上,简化掉的唯一事情是忘了实际上的进行
阅读全文
摘要:在写代码的时候,即使编程老手经常会遇到一个不知道如何抉择的事情,面对查询的需求如何选择容器,容器的大小等因素也会困扰我们的选择。为什么呢?新手面对查询往往会直接选择map,因为map是内部是支持查询函数的,但老手知道map是通过复杂性换取查询的性能的(map的实现往往是红黑树),那如果要保存的数据个数不多呢,是否值得使用map这样的容器呢?最近两天写了几行短小的代码,针对这个问题进行了一测试,测试对vector,map,hash_map三种有代表性的容器进行了测试,测试容器的长度为10,50,100,200,500,1000.测试的方法是使用int作为测试对象,vector的查询使用顺序查找,
阅读全文
摘要:转载部分:最近在做项目过程中,有用到ShellExecute函数,功能1,为打开一个URL。代码如下:HINSTANCE Result;Result = ::ShellExecute(GetSafeHwnd(), "open", strPath, NULL, NULL, SW_SHOWDEFAULT);返回:SE_ERR_ACCESSDENIED (原因还未找到,但是在另一个项目中此功能是OK的,郁闷,换成WinExec),此问题出现的环境为xp sp2。功能2,用ShellExecute去执行程序外的一个exe,代码如下:Result = ::ShellExecute(N
阅读全文
摘要:用户感觉到软件的好用,就是可以定时地做一些工作,而不需要人参与进去。比如每天定时地升级病毒库,定时地下载电影,定时地更新游戏里的人物。要想实现这些功能,就可以使用定时器的API函数CreateWaitableTimer和SetWaitableTimer来实现了,这对API函数创建的时钟是比较精确的,可以达到100倍的10亿分之一秒。函数CreateWaitableTimer和SetWaitableTimer声明如下:WINBASEAPI__outHANDLEWINAPICreateWaitableTimerA( __in_opt LPSECURITY_ATTRIBUTES lpTimerAtt
阅读全文
摘要:class Widget{public: Widget():a_(0) {} Widget(int a):a_(a) {} operator int& () { return a_; }private: int a_;};int main(){ Widget w(189); int a = w; cout<<a<<endl; return 0;}其中operator int& ()即为隐式转换操作符,返回int&的类型。。。。C++,函数对象 ...
阅读全文
摘要:关于对于VC/MFC/ATL的评论问题,其实我很早就想写一篇文章来阐述自己的观点,不过又觉得这种容易引发论战的文章实际上是在空耗大家的时间, 不如做点实际工作. 但是现在中国程序员群体的思想走向已经到了一种非常危险的一边倒的地步,上几期电脑报上登出了几名14岁的小孩子, 刚刚学会写几个程序, 就把VC列为自己的梦想. 我去年找工作的时候,连续被几个公司问会不会VC,得到我的答复之后,他们怎么也不能相信一个学了四年C,两年多C++,还利用“空闲”时间学习了 Java、Perl的人,一个敢于在“专长”一栏里写上“掌握C++”的人,居然只是对VC“略有了解”,我从他们的表中看出一种不屑:“你还敢说自
阅读全文
摘要:我们应该按照C中的convention去使用union,这是我这篇文章要给出的观点。虽然C++使得我们可以扩展一些新的东西进去,但是,我建议你不要那样去做,看完这篇文章之后,我想你大概也是这么想的。 C由于没有类的概念,所有类型其实都可以看作是基本类型的组合,因此在union中包含struct也就是一件很自然的事情了,到了C++之后,既然普遍认为C++中的struct与class基本等价,那么union中是否可以有类成员呢?先来看看如下的代码: struct TestUnion { TestUnion() {} }; typedef union { TestUnion ...
阅读全文
摘要:GetTempPath有关参数说明如下:StrLen = GetTempPath(NAME_LEN, OutPath)其中: OutPath: 是输出临时文件夹名称的变量,它的初始值为NAME_LEN个空格,函数调用后,就不是空格了,它会把取得的临时文件夹名称存入此变量。NAME_LEN: 是告诉函数OutPath变量的长度。StrLen:是取得的临时文件夹名称的长度。举例如下:StrLen = GetTempPath(NAME_LEN, OutPath)调用后OutPath=“C:/DOCUME~1/LJL889~1/LOCALS~1/Temp/ ...
阅读全文