Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизОбработка данных основного приложения через DLL Найти похожие ветки
← →
Алексей (2005-02-10 21:48) [0]Смысл в следующем:
Основная программа передает в процедуру подключаемой ДЛЛ
в виде параметра указатель на структыру данных. В ходе обработки функцией ДЛЛ данных по этому указателю возникает ошибка INVALID POINTER OPERAITION.
В чем проблема. Если переводить дословно то получается что была совершена некорректная операция, ноя я все проверил ошибок как бы и нет!
Еще обна особенность в том, что эта ошибка возникает в цикле при его прохождении в 3-й раз.
Я проверял - значения всех переменных корректны, все структуры инициализированны и заполнены.
Что делаь ? ;)
← →
Eraser © (2005-02-10 21:51) [1]Что за структура?
Внутри программы ты изменяешь эту структуру?
← →
Алексей (2005-02-10 22:36) [2]type
TD = record
inn_ : string;
data_ : string;
prim : string;
de : string;
kr : string;
ot_kogo : string;
end;
I_NN = class abs : array[1..1000000] of TD;
id : integer;
constructor create;
end;
такая же структура определена и в ДЛЛ, она инициализируется так:
Procedure Data_To_Array(IN___ : Pointer;M:Pointer;PrBar:TProgressBar);
*-----------------------
a1_dta := IN___;
a2_dta := M ;
inn := I_NN(IN___);
*---------------------
← →
Alexander Panov © (2005-02-10 22:44) [3]Сразу вопрос по поводу передачи строк и соглашениях о вызовах.
← →
Юрий Зотов © (2005-02-10 22:45) [4]Структура содержит длинные строки. Используйте ShareMem.
← →
Eraser © (2005-02-10 22:59) [5]Алексей
Если строки потенциально короче 255 символов- используй тип shortstring.
← →
Алексей (2005-02-12 09:17) [6]Спасибо, всё дело было в ShareMem, только теперь после завершения программы вылетает ошибка.????????
← →
Eraser © (2005-02-12 11:40) [7]Алексей
ИМХО, лучше не использовать ShareMem, а обходиться стандартами Windows, как это делают API функции.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c