2011-10-28 40 views
1

我使用CreateDIBSection()從緩衝區創建HBITMAP,但有時 - 沒有經常發生 - 我從它得到一個NULL指針。我不明白是什麼可能導致函數返回一個空指針,因爲 - 正如我之前所說 - 這是不規則的。有時會在顯示10幀後發生,有時會在2幀後發生。 有人能解釋我哪些是意外失敗的可能原因?Windows GDI上下文 - CreateDIBSection

+2

GetLastError()在失敗時返回什麼? –

+0

@Alan GetLastError沒有爲'CreateDIBSection'設置。至少不是根據文檔。 –

+0

@David文檔有點不清楚 - 它表示函數返回NULL表示失敗,並且它可以「返回」ERROR_INVALID_PARAMETER。 –

回答

0

如果此函數隨機失敗,我會傾向於認爲緩衝區格式不正確或混亂。回到創建緩衝區的代碼中,看看是否有任何函數在那裏失效。在代碼繼續之前,我會懷疑函數返回狀態沒有被正確檢查。