Контекст GDI Windows - CreateDIBSection

Я використовую CreateDIBSection() , щоб створити HBITMAP з буфера, але іноді - без регулярного входження - я отримую з нього NULL-покажчик. Я не можу зрозуміти, що може призвести до повернення NULL-покажчика функції, оскільки, як я вже сказав, це не є правильним. Іноді це відбувається після відображення 10 кадрів, іноді через 2 кадри. Чи може хто-небудь пояснити мені, які можливі причини несподіваного збою?

1
@ HansPassant Чи є у вас підтвердження вашої претензії?
додано Автор phimuemue, джерело
@Alan GetLastError не встановлено для CreateDIBSection . Принаймні, не відповідно до документів.
додано Автор David Heffernan, джерело
@Alan Якщо було викликано SetLastError це буде сказати так. Ви повинні перевірити NULL або ERROR_INVALID_PARAMETER. Це режими відмови.
додано Автор David Heffernan, джерело
Сторінка бібліотеки MSDN в Інтернеті не працює, на відміну від моїх локальних копій. Це безперечно визначає значення повернення GetLastError.
додано Автор Hans Passant, джерело
Що робить GetLastError() , коли він не працює?
додано Автор Alan Stokes, джерело
@David Документація дещо незрозуміла - вона говорить, що функція повертає NULL для несправності, а також, що вона може "повернути" ERROR_INVALID_PARAMETER.
додано Автор Alan Stokes, джерело
Ні, він повертає 0. Називається одразу після нього.
додано Автор Stencil, джерело

1 Відповіді

Якщо ця функція буде випадково відмовлятися, я б схильний вважати, що буфер неправильно відформатований або пошкоджено. Поверніться до коду, який створює буфер, і перевірте, чи не вийде якась з функцій. Я підозрюю, що стан повернення функцій не перевіряється належним чином, доки код не буде продовжений.

0
додано
IT KPI C/С++ новым годом
IT KPI C/С++ новым годом
747 учасників

Чат обсуждения С/С++. - Вопросы "напишите за меня лабу" - это оффтоп. - Оффтоп, флуд, оскорбления и вбросы здесь не приняты. - За нарушение - предупреждение или mute на неделю. - За спам и рекламу - ban. Все чаты IT KPI: https://t.me/itkpi/1147