![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
TDelphist |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.4.2011 Репутация: нет Всего: нет |
Есть приложение с 10ю формами. На одной из них при открытии окна подгружаю динамически библиотеку сделанную на C++. Получаю AV(( Почему возникает AV? Подскажите пожалуйста.... Уже 2ой день не могу разобраться(( Это сообщение отредактировал(а) TDelphist - 15.4.2011, 09:16 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Это очень плохо.
char это не байт, LoadLibrary это не ShellExecute (32 не в кассу), лишнее присваивание Р, приведение его к целому не пойми зачем. В этом всем нереально найти ошибку. Просмотрел насколько мог. Вроде "механически" это допустимо, если совпадает сигнатура вызываемой процедуры -------------------- Обижено школьников: 8 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Resultat := Integer(P^) выполняется даже если get_dll_function не была вызвана
Добавлено через 6 минут и 55 секунд get_size_interval бы еще посмотреть -------------------- Обижено школьников: 8 |
|||
|
||||
TDelphist |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.4.2011 Репутация: нет Всего: нет |
А сколько? sizeof(char) вернуло 1. Вот так выглядит обьявление функции dll в .h
Привожу к целому потому что должен получить int ы из dll У меня крах мозга((.. Обернул не помогло((
Это сообщение отредактировал(а) bems - 15.4.2011, 12:29 |
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
char занимает один байт в старых дельфи, и два в новых. Но если тебе нужны именно байты, а не символы так и пиши Byte.
А в твоём случае можно объявить как указатель на массив из четырех Integer во что разворачивается определение Increment_API? -------------------- Обижено школьников: 8 |
|||
|
||||
TDelphist |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.4.2011 Репутация: нет Всего: нет |
У меня Delphi6 .
К Dll дали только обьявление (хедер). Dll писали другие студенты, полностью тело библиотеки нужно запрашивать. Чуть попозже надеюсь пришлют. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 18 Всего: 88 |
Не тело, тот Increment_API, который в самом начале объявления
Добавлено через 2 минуты и 1 секунду Дай длл -------------------- Обижено школьников: 8 |
|||
|
||||
TDelphist |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 15.4.2011 Репутация: нет Всего: нет |
Переделал на указатель из массива четырех Integer
И AV пропало. Спасибо огромное! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |