在關閉一個基於D3D的應用程序時,D3D調試運行庫會報告內存泄露。按照以下步驟定位泄漏點。
1. 在DirectX Control Panel中(通常在DXSDK安裝目錄中可以找到),啓用“Use Debug Version of Direct3D 9”並且將Debug Output Level設置爲”More”。確保Break on Memory Leaks被禁用。點擊Apply。
2. 在VS中調試運行應用程序。在關閉應用程序之後,查看VS的輸出窗口Direct 3D9: (WARN) : Memory Address: 00xxxxxx, IAllocID= xx dwSize = xxxxxxxx;(pid = xxxxx)
3. 每條記錄對應了一個資源泄漏,查看並記住ID,然後在DirectX Control Panel的Break On AllocID中輸入ID並且點擊Apply。
4. 再次運行程序,重複以上步驟。程序會在分配點中斷,你可以檢查哪裏遺忘釋放。
5. 當你調試完成之後,別忘了將Break On AllocID設置爲0。