|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
Переполнение буфера13.05.2013, 00:46. Показов 8177. Ответов 26
Метки нет (Все метки)
Подскажите, пожалуйста кто-нибудь, в чем беда... Во время выполения программы пишет, что буфер переполнен, что точка останова смещена и "Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера"". Как справиться с сией проблемой? Что нужно изменять в коде программы?
0
|
|
| 13.05.2013, 00:46 | |
|
Ответы с готовыми решениями:
26
переполнение буфера Переполнение буфера Переполнение буфера |
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||
| 13.05.2013, 00:49 | ||
|
без кода ничего никто не скажет. какой буфер, где и при каких условиях.
в таких случаях кэп советует
0
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||||||||||||
| 13.05.2013, 01:09 [ТС] | ||||||||||||||||
|
Вот код программы:
Заголовочный файл класса
Добавлено через 2 минуты И выделенный момент с ошибкой: "8-bit_BMP.exe": Загружено: "D:\Vs\8-bit_BMP\Debug\8-bit_BMP.exe", Символы загружены. "8-bit_BMP.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Program Files\AVAST Software\Avast\snxhk.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\KernelBase.dll" , Невозможно найти или открыть файл PDB "8-bit_BMP.exe": Загружено: "C:\Windows\System32\msvcp100d.dll", Символы загружены. "8-bit_BMP.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены. Первый этап обработки исключения в "0x00af5286" в "8-bit_BMP.exe": 0xC0000005: Нарушение прав доступа при чтении "0x999999a5". В 8-bit_BMP.exe возникло переполнение буфера, что привело к повреждению внутреннего состояния программы. Нажмите кнопку "Прервать", чтобы отладить программу, или кнопку "Продолжить", чтобы завершить программу. Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера". В 8-bit_BMP.exe возникло переполнение буфера, что привело к повреждению внутреннего состояния программы. Нажмите кнопку "Прервать", чтобы отладить программу, или кнопку "Продолжить", чтобы завершить программу. Дополнительные сведения см. в разделе "Инструкции по отладке в случае переполнения буфера". STATUS_STACK_BUFFER_OVERRUN encountered 8-bit_BMP.exe привело в действие точку остановка Программа "[7212] 8-bit_BMP.exe: Машинный код" завершилась с кодом -1073740791 (0xc0000409).
0
|
||||||||||||||||
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
| 13.05.2013, 01:22 | |
|
осваивайте отладку программ.
в студии с этим все просто. беглый взгляд падает на строку 14: f.read((char*)& RGB, 1024); возможно хотелось так: f.read((char*)RGB, 1024);
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 01:29 [ТС] | |
|
Исправление этого момента помогло..Немного. Теперь буфер не переполняется, но все равно программа падает
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 01:30 [ТС] | |
|
Как я понимаю, ему не нравится размер, вот только размер чего? И почему не нравится?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 13.05.2013, 08:19 | ||
|
0
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||
| 13.05.2013, 08:24 [ТС] | ||||||
0
|
||||||
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
|
|
| 13.05.2013, 08:36 | |
|
Eagle123,
вот на этой картинке что ты привел нажми продолжить программа упадет еще раз тогда нажми прервать и попадешь в отладчик на точку что вызвала исключение скорее всего попадешь в какую нибудь системную функцию тогда идешь в отладчике в окошка стека там будет список функций которые вызваны до аварии просмотри их сверху вниз и тогда дойдешь до строки с неправильными параметрами
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 14:40 [ТС] | |
|
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
| 13.05.2013, 14:46 | |
|
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 18:46 [ТС] | |
|
В итоге считывается информация из файла правильно, и массив создается тоже верно.
И все бы хорошо, только рисует не флаг, а вот это.
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
||||||
| 13.05.2013, 18:47 [ТС] | ||||||
|
Вот функция, которая это рисует. Что-то тут не так
0
|
||||||
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
|
|
| 13.05.2013, 19:12 | |
|
Eagle123,
А ты откуда берешь размеры Из заголовка файла? а ты учел что там два размера размер картинки и размер буфера выравненный то ли на 2 то ли на 4 (нет сейчас спецификации под рукой) и они могут различаться и учти что в BMP шке картинка размещена вверх ногами т.е самая нижняя строчка в буфере самая первая Добавлено через 1 минуту Да и с палирой разберись ты видать её не загружаешь у французского флага никак не такие цвета
1
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:22 [ТС] | |
|
С цветами все нормально. Там если увеличить, то видны нужные полосы (синего, белого и красного цветов). Только на картинке они накладываются друг на друга... Получается, если запись идет с конца, то надо делать не сине-бело-красный, а красно-бело-синий флаг?? А вот с размерами теперь не ясно, там же в структуре заголовка только одна длина и ширина?
Еще нашел, что надо учитывать кол-во байтов на пиксель..Это так?
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
|
||
| 13.05.2013, 19:36 | ||
|
http://www.firststeps.ru/mfc/msdn/r.php?114
Вот это 22h 4 biSizeIm Размер изображения в байтах и это 12h 4 biWidth Ширина Bitmap-а в пикселях 16h 4 biHeight Высота Bitmap-а в пикселях Добавлено через 3 минуты то считываешь 1 байт красный 2 байт зеленый 3 байт синий 4 зарезервирован т.е на одну точку считывать нужно 4 байта если 256 цветов то на одну точку 1 байт а если двухцветное изображение то один байт на 8 точек Добавлено через 44 секунды вот еще http://c-site.h1.ru/infa/bmp_struct.htm сноску почитай
1
|
||
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:40 [ТС] | |
|
Размер изображения в байтах = 226000, размер в пикселях т.е. h.bih.biHeight * h.bih.biWidth = 900 * 500 = 450000. И по каким размерами тогда составлять массив для цветов и записывать его, по байтам??
Добавлено через 2 минуты Изображение 16-ти цветное
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:47 [ТС] | |
|
Изменил началиный размер изображения ( сделал размеры сторон кратные 4), получилось вот так
0
|
|
|
6 / 6 / 2
Регистрация: 03.10.2012
Сообщений: 54
|
|
| 13.05.2013, 19:51 [ТС] | |
|
Но сразу заметно, что изображение закрашено не полностью, видны какие-то полосы. Поэтому цвета так смешиваются
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,851
|
||
| 13.05.2013, 20:49 | ||
|
или поройся в сети найди готовые библиотеки
0
|
||
| 13.05.2013, 20:49 | |
|
Помогаю со студенческими работами здесь
20
Переполнение буфера Переполнение буфера Переполнение буфера! (наверное) Переполнение буфера . Что делать ? Переполнение буфера при вводе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|