All Stories

睡少了

  晚上睡少了,结果白天感到特别累,倒不是很困,晕!  看到一篇blog,比较不同的程序语言的,有点搞笑,倒不是像在bbs上的那种月经贴吵着不可开交的那种,是用女人来形容各种编程语言,回复也挺有趣的!

我的方块W.I.P #15

  用PSDK写界面真是太太太麻烦了,每一个Windows Control的操作都要通过原始的Win32 API来进行,不方便啊!做完方块,应该考虑找一个现成的好用的库,或者自己写一个轻量级的。如果继续这样下去,大量的重复劳动时间耗费,太不划算啦!比如有个IP Address的Control,现在我有一个string形式的IP地址,要把它显示在这个Control里,要写好多代码呢!  要善于利用现有的库呀!不过我现在只信得过编译器自带的C/C++库和Boost呀,ACE还没试过好不好用呢,网上看到有人曾经抱怨过,有些奇怪的问题的,如果遇到了,又真的实在不好解决的话,就也真的只好另外找一个了,Boost不也要加一个网络应用的库吗,不知道进展怎么样了。重新发明轮子,这个真是说得太贴切了。比如这里我用到了一个文件搜索功能,以前都是直接用Win32 API来搜索的,要写个二三十行,现在用了C库里的函数,十行都不到就实现了我需要的功能。那些重复的代码就是C库的编写者已经帮忙写了呀!  中午跑到生产中心去自助了,有螃蟹呀,虾呀,扇贝呀,青口呀,呵呵,三个人吃到天下大雨回不去为止,本来还打算买伞的,后来雨小了点,后来又大了,便想叫教授送伞的,嘿嘿,结果最后还是坐了点对点回去的。  今天心情不错呀,原来我是这么容易被收买的!晕!!~

我的方块W.I.P #14

  一边看MSDN,一边敲键盘,终于可以实现属性对话框的各种基本功能了。Apply、OK、Cancel都可以按标准Windows应用程序的样子做动作了。要吸引别人在某平台上做开发,详细的文档和丰富的例子是一大诱惑呀!  看到CSDN Blog上有人在讨论wxWidget、QT、GTK+,反正我觉得,在Windows平台,要省事就用VCL、如果想用MS技术,用就WTL、或者就纯手工打造SDK慢慢画吧,就像我现在写方块一样。游戏平台的丰富程度令人咋舌,手机、掌机、家用机等等等等,对于小游戏来说,手机和掌机应该是以后可以考虑开辟的一块市场,对于网络游戏,像QQ游戏那种,Linux版或许也可以吸引一部分用户,不太确定,可能国外的用Linux的人更多点吧。  把属性对话框的界面部分全部实现后,再弄LuaSuck吧,有了LuaSuck才能弄Skin和游戏逻辑脚本支持,不过Skin只要能读取Lua脚本中的几个变量的值就够了,只要确定了接口就行了,游戏逻辑脚本,其实也就是调用几个固定名字的Lua函数,不过LuaSuck还是要做的。另外就是,要写个Skin打包工具,可以比较直观地在现成的图片上定义相应的属性,生成Lua配置脚本,再用7z打包。完成了这些,才能再考虑联网的问题!晕!

我的方块W.I.P #13

  实践是一种很好的学习方式。加了个类,也算是学习别人的样子,尽自己的力抽象一下,把配置模块提取出来了。属性对话框得花很多时间啊,这时就体现出一个好的GUI库的必要性了,可以大大地节省编码时间。那只给我一个念头:以后除了要用DX的游戏程序,其它的一定不再不用VCL了,VCL太好用了,其它的Framework也没试过,不喜欢MFC的结构,WTL不知道咋样。或者自己写一套简单的?看CSDN Blog上有个人一直在宣传自己做的一个基于WTL的GUI库嘛,我不需要非常齐全的功能,我只要一些常用控件就行了。  现在发现Singleton是种很有用的技巧。在使用过程中发现,如果一个类被实现为Singleton了,一定要顺便把析构函数也声明为非public的,这样就不会不小心把它delete掉了。Metaprogramming还是非常值得学习一下的!

芳林过来了

  芳林来zte培训10天,我们几个在这儿的同学就打算一起见个面。周五下班,坐上391直奔华强北,xcc出差南京去了,就剩下afei了。然后三个人在漓江又一轩吃了一顿。芳林这猪,变这么肥,从肚子到脸,全都变胖好多,想当时在学校,多瘦小一个人呀!由于是晚上时间,也不是很想再去哪里玩,吃过饭,就随afei把芳林送上zte学院的车。然后我再把afei送到她回家的公交车上,我才自己去坐车回来。我觉得我很喜欢这种感觉,偶尔有同学过来,然后可以聚一下,了解一下别人的生活学习工作状况,不同于我们几个在这儿的人的状况。  回到家后看小说看到3点多,然后上床睡觉,结果第二天早上9点多就睡不着了,起床上网,无聊。洗了个澡,等到12点半过,去坐车,项目组活动,去梅林K歌。到那里已经是1点了,结果2个包间里只有3个人,晕,我还想我已经迟到1个小时了呢。起床开始一起没吃多少东西,看到有吃的,就把那些零食都消灭了。人陆续多起来了。因为用力在那里吼,哑了。大部分流行过的老歌都还是能唱的,至少高潮部分是会唱的,只是嗓音不好啊!尤其是女歌手的歌,唱不上去,晕!还逗了一下教授和疯丫头一会儿,哈哈,篡改歌词还挺好玩的,以前上中学的时候经常这样玩儿,大学里就很少了,因为大学里都只是安静地在电脑上听歌。  一直k到6点,然后老大说,一起去吃饭,果然,还是有点在预料之中的,在疯丫头的建议下,去吃韩国烧烤了。这边这桌的人个个是大食量的,上了就要抢,昏,呵呵!

小丫头又跑到公司去上网了

  小丫头又跑到公司去上网了。我问她怎么就为了上网就跑过去了,她说想出来走走,顺便想写一下总结。然后两个人就东拉西扯了一会儿。其实我们聊的话题很少很少,每次我都是搜肠刮肚地想些事儿来说说,而且很多时候我发消息过去的时候,能预料到她会回复什么内容。我只是不想让它冷场,我不是不善言辞吗。小丫头脾气很大,出乎意料地对我破口大骂,我都开始怀疑是不是她的QQ被盗了。我还想我是哪里招惹到她了,会发这么大火,骂这么凶。不过马上,她说因为没人骂,就骂我了,我才舒了口气,原来我没招惹她。后来她快要下的时候,告诉我为什么她最近心情不好。其实我也是这样过来的,走出校门走向社会后,总会遇到一些以前没遇到过的事儿。然后谈起以前的事,心情超级沉重。小丫头是个固执而倔强的人,幸亏我们不谈恋爱,不然肯定会为一些其实不应该成为问题的事情经常吵架吧,呵呵。我也自认为有点霸道有点顽固有点小气,我想管得别人太多了,其实我完全可以不理会。  有点累。我用我的方式解决问题,但一定要得到有些人的认可才行。我不能忍受别人曾经对我的奚落、嘲笑和无视,我不会装作若无其事地坦然接受这一切,我在乎得很。我宁可重新另外找一个新的开始,也不愿再回头,乞求同情和怜悯。我对小丫头说,我的挑剔,来自于对自己的信心。还好,VC和GCC其实都不支持可变数目的模板参数的,那天是太紧张了,看到的其实是LuaTinker里另外一种奇怪的语法。hoho~~~

LuaSuck #1

  在看LuaTinker代码的过程中,惊奇地发现,它居然用了可变数量的模板参数!!这个这个这个,对我来说,不啻于晴天霹雳,《Modern C++ Design》上可是写着“Variable template parameters simply don't exist.” 我打开VC2005又试了一下,明明白白,VC7.1到VC8,都是可以这样用的。到底是哪里出问题了,谁错了……  LuaTinker在处理C++ free function的时候,是把pointer to function当作light userdata压入了virtual stack,网上到处都流传着一份不知道从哪里散发出来的用proxy手法解决的方案,感觉不如LuaTinker的爽。

试试blogger.com的贴图功能

hoho~~~这就是传说中的疯丫头,啦啦啦啦~~~

我的方块W.I.P #12

  在好几天前对MSDN的一番研读后,终于把PropertySheet显示出来了,其实真的很容易,很简单,至少比想像中的简单多了。唉,用惯了VCL,再来用SDK,实在觉得吃力。要是以前,随便拖个Form,放个TPageControl,早就完事了。现在,里面的4页Dialog一个个描就不说了,在BCB里也是需要的,然后要写Dialog的消息处理函数,一个个标准的回调过程, VCL里就只需要对自己感兴趣的事件重写处理函数就行了。然后是注册表操作,VCL里的TRegistry也是多方便,多健壮的。自己写一个类似的封装吧,不但花了不少时间,还没有TRegistry好用,昏倒,不过现在勉强能满足当前的需要了。  之后要做的,要把各个Dialog消息处理函数填完,然后是LuaSuck。这几天也读了好几遍《Programming In Lua》,还有它的Reference Manual,对Lua的了解又进了一步。Lua为了屏蔽数据类型的差异以及编码风格的统一,*所有*的与C/C++交互的数据都是通过一个virtual stack来完成的。一定要记住这一点,所有的操作都是针对那个virtual stack来的。LuaSuck的目标和TclSuck类似,①可以使C++程序与Lua程序里的变量互通,②可以在C++程序里自由调用Lua的函数过程,③可能方便地用C++函数来扩展Lua。虽然SWIG应该能很好地完成①和③,但在上次写TclSuck的过程中,我深刻地体会到库的编写的乐趣,远远大于库的使用的乐趣(晕死,真的像Andrei Alexandrescu说的那样了)。