Страница: 1 |
Страница: 1 |
Вопрос: GetSaveFileName и GetDIBits. приложение вылетает.
Добавлено: 25.06.10 01:17
Автор вопроса: AWP | Web-сайт:
Прошу помощи. VB6.
Ситуация такая.
1. Открываю диалоговое окно GetSaveFileNameA
2. Выбираю файл
3. Беру данные из картинки GetDIBits
4. Сохраняю их в PNG библиотекой png
5. Работаю - все нормально
6. Вызываю GetSaveFileNameA или GetOpenFileNameA или GetDIBits
7. Программа вылетает с громким грохотом. Иногда с ошибкой на память, а иногда и без всяких ошибок.
Не могу понять где накасячил и из-за чего все это. Библиотекой для сохранения png пользуюсь давно, ошибок таких не было.
вот исходник
http://www.vbcode.h1.ru/download/paintpro.src.zip
Чтобы долго не разбераться
код обработки GetSaveFileNameA
frmMain->OpenPicture
код сохранения PNG
frmOutput->Command1_Click
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 25.06.10 01:28
выяснил некоторые подробности.
Если сохраняю картинку как 32 бита, то ошибки не вылезает, но мне нужно 24 бита, а с ними все вылетает.
Как это решить или обойти?
Номер ответа: 2
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #2
Добавлено: 25.06.10 01:59
нашел такую штуку и заменил на неё, все заработало
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 25.06.10 02:04
байты не считал, но думаю что в первом варианте у тебя массив слишком мал, и перезаписывается чужая память
Номер ответа: 4
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #4
Добавлено: 25.06.10 02:44
спасибо, но мне неясно почему мал. Ширина*Высоту*3байта - Этоже размер растра.
Номер ответа: 5
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 25.06.10 03:15
то ли там все равно по 4 байта, то ли выравнивание в конце строк. Предполагаю
Номер ответа: 6
Автор ответа:
Retupa
Вопросов: 1
Ответов: 51
Профиль | | #6
Добавлено: 25.06.10 03:34
3байта + vbnullchar
Номер ответа: 7
Автор ответа:
AWP
ICQ: 345685652
Вопросов: 96
Ответов: 1212
Web-сайт:
Профиль | | #7
Добавлено: 25.06.10 13:30
наверное какое-то выравнивание.
Номер ответа: 8
Автор ответа:
Филюс
ICQ: 7116156
Вопросов: 3
Ответов: 14
Web-сайт:
Профиль | | #8
Добавлено: 26.06.10 13:15
не наверно, а точно.