![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Есть функция перевода изображения в полутона:
Если я вызываю её просто из модуля она хорошо работает... но если вызываю её из dll, начинает громко ругаться матом. Что делать? |
|||
|
||||
| Wolfgan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 21 Регистрация: 20.3.2008 Репутация: нет Всего: нет |
Ты почитай как правильно вызывать функцию из DLL. Точно не помню, но там нужно помоему с директивой stadartcall вызывать.
Это сообщение отредактировал(а) Wolfgan - 8.4.2008, 11:00 |
|||
|
||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Вызываю правильно - остальные функции пашут, но именно эта - нет
|
|||
|
||||
| Mikh@il |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Твоя функция использует еще функцию check, которая ведет контроль выхода за пределы [0..255]. Про нее ты ничего не написал где она храниться, откуда вызывается. А ошибка твоя скорее всего в том, что вызываемая функция не может найти твою вторую check.
|
|||
|
||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
=( Закоментировала совсем вызов этой функции - все равно вылетает...
Я думаю, что летит на I := img.ScanLine[y]; потому что битмап как-то косо передается... но не знаю как это наверняка проверить или как обойти.... |
|||
|
||||
| Mikh@il |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Кстати для корректной работы твоей функции изображение должно быть 24bit.
т.е. Pixelformat:=pf24bit. Есть такое в твоем коде? |
|||
|
||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Нет, спасибо, что сказали - сейчас вставлю
Добавлено через 6 минут и 15 секунд Вставила :
от ошибки не спасло |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Мдя... очередной раз не заметили граблей
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Но у меня есть функция в той же длл
procedure doScaled(var img: TImage; sc: extended); и она работает! |
|||
|
||||
| Mikh@il |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
Сделай так:
Вызов функции:
|
||||
|
|||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Спасибо
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Это ровным счетом ничего не значит. Строго запрещено, как раз потому что последствия очень сложно предугадать. В одном месте сработало, а в другом сдохло. Так оно будет всегда, и без всякой причины. То там то тут AV. Приятного вам -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
просто повезло... если вдруг внутри метода создаются и/или уничтожаются объекты - то огребешь граблей -------------------- There are always someone smarter than you... |
|||
|
||||
| Kationchic |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.10.2007 Репутация: нет Всего: нет |
Ясно... спасибо за информацию.
|
|||
|
||||
| pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
и все же и я выскажусь. предлагаю передать картинку через строку.
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
pseud, не идеальный вариант. который скорее всего опять же приведет к неправильному выделению/освобождению памяти в приложении/длл
-------------------- There are always someone smarter than you... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |