好多同學都要求干貨分享,嗯,那我就直接跳過大量的基礎介紹啥的,直接從重點講起,如果有不明白的,請自行google吧,盡可能的我也會給出相關的鏈接,畢竟這個系列不是從零開始的,所以,請見諒。
從哪里開始,嗯,先從調試器入手吧。cocos2dx是一個跨平臺的游戲引擎,主要的開發(fā)工具支持win32/mac,于是對于調試器我們選擇的余地就大了許多,visual studio,xcode,也可以用eclipse 或者adt下直接用gdb。
就我個人而言,我還是喜歡visual studio,穩(wěn)定、高效、快速、友好,甚至于在放棄了window轉投mac之后,為了能使用vs來調試特意裝了一個windows的虛擬機。
下面的文章都是圍繞著visual studio展開的,當然運行在win32上。
對于C++程序員來說,內存管理絕對是最重要的一關,各種奇怪的問題都和內存有關。哪怕是多年的老手,一不留意,也會出各種問題。要少出內存問題,一個是寫出高質量的代碼,另外的就是能快速定位到問題的代碼。好,接下來就是干貨時間了,……
首先,自然是好好學習下C++,特別是指針相關的內容,知道了為什么才能少犯錯。推薦的是Stephen Prata的《C++ Primer plus》,經典教材,你值得擁有。
提示:
1.《C++ Primer plus》百度百科
2.電子版本自行百度
其次,寫代碼的時候,盡量使用STL的代碼,不要輕易嘗試自己去實現常用的數據結構,一來是容易出錯,二來你寫的肯定沒有STL的效率高。站在巨人肩上才是最應該做的。如果你對C++足夠了解的話,推薦使用boost或者C11里面的智能指針,shared_ptr和weak_ptr能避免大量的內存問題(這個后面說起C11,再詳細說明)。
好了,寫了代碼以后,接下來就是調試了。內存出錯了,捉雞啊,怎么辦?找大牛還是死扛呢?這時候你就需要一些特別的工具了。
首先,自然是vld了。vld全稱Visual Leak Detector,目前最新版本2.3.0,官網地址http://vld.codeplex.com/
vld的好處就是簡單,幾乎不需要做任何修改,裝完了,只要添加一個頭文件,就可以用了。
僅需要把頭文件編譯進工程即可,最好加在main.cpp里(就是有winmain函數的那個文件)
另外,多個dll,需要每個都添加。比如libCocos2d,libCocosDenshion需要分別添加
在程序退出之后,就能看到內存泄露的信息了。
雙擊堆棧信息,可以很直接跳轉函數,方便無比。
好了,說了一堆好處,接下來就是有待改進的地方了:
內存檢測需要在程序退出以后,檢查起來比較麻煩
虛擬機下,使用不太正常。