参考资源: http://www.cppblog.com/qiujian5628/archive/2008/06/28/54873.html http://blog.csdn.net/jgood/article/details/4787670