自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

无心云

云无心以出岫,鸟倦飞而知还。

  • 博客(7)
  • 资源 (3)
  • 收藏
  • 关注

原创 c++中的智能指针实现

<br />今天和同事讨论了一下c++中的智能指针如何实现,后来又研究了一个boost::shared_ptr的代码,终于有了点眉目。<br /> <br />智能指针类,其实主要有两个参数,一个是所维护的指针,一个是引用计数,请注意,这个引用计数是一个指针,这个指针对外不可见,由智能指针类所维护。<br /> <br />智能指针类被赋值给别的变量时,这个引用计数会加1,当智能指针类被销毁时,这个引用计数会减1,当减到0时,这个智能指针所维护的指针变量会被销毁。是不是很简单?<br /> <br />但这

2011-03-25 17:56:00 1576

原创 boost::bind的使用

<br />最近在几经波折之后,终于对于boost::bind有点理解了。对于习惯了其他语言的人来说,boost::bind是个挺神奇的东西,它可以将你的方法适配成任何其他的方法。其实这得益于c++的模板以及操作符重载,去看boost::bind的实现就会发现它是一个有n多重载的函数,这些重载主要是为了适应函数的参数个数。<br /> <br />其实boost::bind的原理是函数对象,而函数对象就是一个重载了()操作符的对象,这样我们就可以像调用一个方法一样来调用一个类上的这个操作符,比如a(),其实

2011-03-25 17:51:00 34540 7

原创 flash中的string

<br />由于需要,要使用alchemy来写一个flash端的校验,要对一个二进制序列进行hash然后再返回一个二进度序列。一开始为了图省事,直接使用了flash提供的string来完成,结果发现string遇到/0时再往后的数据就不是你所期待的了。当时为了这个问题折腾了很久,主要原因是执行结果时对时不对,在追查问题时,最怕的就是这类问题。没办法了,将二进制数据打印出来,一个个对,结果发现我的hash结果在不对的时候总是前面是对的,到某个点的时候就不对了。于是想到可能是啥东西给截断了,唯一的可能性就是/0

2011-03-25 17:32:00 1788

原创 新项目,新架构

<br />新项目需要一个长连接架构的实现,而长连接对于性能的要求决定了用c或者c++来写比较靠谱,但是公司的技术人员组成决定了不可能用c或者c++来写业务逻辑,而且这个也不现实,会使得开发周期和维护成本很高。于是决定采用boost/asio + fastcgi + php来实现,也即前端有一个保持长连接的服务器,当前端将请求发上来之后,长连接服务器通过fastcgi协议将请求发给php,由php处理完成后再返回给长连接服务器,由长连接服务器返回给用户。<br /> <br />有人可能会说,这跟web服务

2011-03-25 17:25:00 1152

原创 类型转换带来的问题

<br />请看下面这段代码<br />#include <iostream>#include <boost/shared_ptr.hpp>#include <boost/asio/streambuf.hpp>#include <boost/cstdint.hpp>int main(){ boost::uint32_t intelligence = 57; boost::uint32_t base_damage = 24; boost::uint32_t random_d

2011-03-14 12:09:00 1241

原创 利用amfext和actionscript进行通信

<br />事实上amfext主要提供了两个函数,一个是amf_encode,一个是amf_decode,而ByteArray中提供的IDataOutput和IDataInput提供的readObject和writeObject是AMF编码的。而amfext的编码在第一个byte指定了当前模块的类型,而ByteArray的实现并没有这个定义,因此需要将它给删除掉。所以ActionScript里需要var bytes:ByteArray = new ByteArray(); bytes.objectE

2011-03-07 18:10:00 1685

原创 重装操作系统之后原来vmware的恢复

<br />今天重装了系统,于是原来的vmware不能用了,原因是原来的那个系统是处于susppend状态的,于是相关信息就没有了。怎么办呢?修改vmx文件,然后让系统可以启动,接下来就简单了。

2011-03-05 13:50:00 4842

Computer Science Handbook第二版.下

计算机科学的百科全书,包括:algorithms, architecture, computational science, graphics, human-computer interaction, information management, intelligent systems, net-centric computing, operating systems, programming languages, and software engineering

2010-02-03

Computer Science Handbook第二版.上

算是计算机科学百科全书了吧!包括:algorithms, architecture, computational science, graphics, human-computer interaction, information management, intelligent systems, net-centric computing, operating systems, programming languages, and software engineering

2010-02-03

Handbook of Data Structures and Applications

Alogrithm Design Manual一书中作者强烈推荐的数据结构方面的参考书,可以当做数据结构的工具书来用,可以查到各种基本数据结构及其用法。在网上找了很久才下到的,拿来和大家分享!

2009-06-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除