http://blog.csdn.net/daniel_ice/article/details/6857019html
http://www.cppblog.com/cuigang/archive/2008/04/04/46271.htmlui