![]() |
|
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]()
|
|
| seroga87 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.10.2009 Где: Киев Репутация: нет Всего: нет |
Добрый вечер! Задача такова - имеется массив такого вида:
Его нужно будет сортитровать так, чтобы во 2м и 3м столбиках значения шли в таком порядке как показано. То есть например: 1 затем 1а затем 1б. Для сортировки нужно написать DLLку. Большая часть кода из нее представлена ниже. В DLL есть 3 процедуры SetArray, Sort и GetArray. Ошибка Invalid pointer operation выскакивает после вызова из EXE процедуры GetArray, при чем значения выводятся до конца, цикл завершается и после этого вылазит ошибка. Если закоментировать в процедуре Sort вот так
Часть кода DLL:
Код EXE:
Это сообщение отредактировал(а) seroga87 - 25.10.2009, 19:25 |
||||||||
|
|||||||||
| Hexel |
|
||||||||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 30.10.2007 Где: UA Репутация: нет Всего: нет |
процедура SetArray
наверное, ты имел ввиду
и вообще плохо в такой задаче использовать глобальные переменные. твой size можно определять и "по горячему"
далее...
если я правильно понимаю значение переменной SIZE, то
и опять же
неизвестно, откуда берется переменная i в проге не присматривался, но вроде верно Добавлено через 1 минуту и 30 секунд тебя компилятор сто пудов предупреждал о таких подводных камнях |
||||||||||||
|
|||||||||||||
| seroga87 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.10.2009 Где: Киев Репутация: нет Всего: нет |
size - это размер динамического массива, увеличивается по мере поступления элементов из программы. По поводу отнимания единицы от size уже перепроверял, все точно, просто если бы переменная была на 1-цу больше была бы ошибка access violation, меньше где-то бы "вылезла" бы "недописаная" строчка.
С переменными i я прохлопал, хотя и в этом виде выдавался нужный результат, так как они работали аналогично счетчику цикла. |
|||
|
||||
| Hexel |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 73 Регистрация: 30.10.2007 Где: UA Репутация: нет Всего: нет |
||||
|
||||
| seroga87 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.10.2009 Где: Киев Репутация: нет Всего: нет |
Вобщем проблема решена. Все дело было в размере строки которая передавалась через параметр A,B,C, то есть в некоторых случаях она была короче чем нужно. Переписал наново GetArray
в exe теперь так:
|
||||
|
|||||
![]()
|
| Правила форума "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. |