|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.09.2011, 01:24 | #1 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
GetDIBits пишет за буфеер => Heap corruption detected.
Неделю назад написал такую функцию:
Код:
И что я увидел? Ошибку "Heap corruption detected"... Оказалось, что GetDIBits каким-то образом пишет за пределы массива... Гуглил-гуглил и вот что нашёл: http://www.rsdn.ru/forum/winapi/111983.flat.aspx Там похожая проблема, но только для 4 бит (сказали, что функа ещё палитру пытается всунуть). Мне добавить в bmi массив размера 2^24???? На msdn вроде написано, что палитру не должно записывать =\ Да и почему для одного окна работает, а для другого сыпется? UPD: Оказалось, что везде работает, кроме калькулятора (win7). У него с шириной какая-то бага. По факту она 1 пиксель больше чем выдаёт GetWindowRect/GetClientRect Последний раз редактировалось TwiX; 25.09.2011 в 06:58. |
16.11.2013, 19:24 | #2 |
Пользователь
Регистрация: 08.04.2009
Сообщений: 45
|
Попробуй обнулить всё в структуре BITMAPINFO, кроме размера структуры (28h).
После изучения ассемблера стал мозг зависать...
|
16.11.2013, 22:27 | #3 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Размер строки должна быть кратной 32битам.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получить пиксель в Hbitmap через GetDIBits. | TwiX | Win Api | 1 | 19.09.2011 11:07 |
detected IDE drivers | nikox12 | Компьютерное железо | 1 | 02.05.2011 19:51 |
Corruption of the heap при вызове деструктора | pure | Общие вопросы C/C++ | 1 | 30.11.2010 21:09 |
Heap Corruption при попытке перевыделить память под массив внутри структуры | Farrel | Общие вопросы C/C++ | 1 | 21.04.2010 00:45 |
HEAP CORRUPTION удаляю массив | delias | Общие вопросы C/C++ | 1 | 10.12.2009 10:17 |