http://blog.csdn.net/yx0628/article/details/10054851 http://www.open-open.com/lib/view/open1345039676412.html