Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        DLL и двумерные массивы
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Одна страница
Модераторы: paradise, KMA
  

Guest



Новичок

Мне необходимо написать DLL, которая бы создавала и заполняла двумерный массив (матрицу). Основная программа должна считывать этот массив.
Я нашел одну ссылку, в которой это делается через записи. Вот так:
В основной программе и в самой DLL создается тип

type
  Matr=array of array of Extended;
    tParams=record
    A: Matr;     //A-двумерный массив
    end;
    pParams=^tParams;
…………………

В DLL создается соответствующая процедура:

Procedure Matrix_A (p: Pointer);   //Процедура, заполняющая массив А
begin
  with pParams(p)^ do begin
  …………………………………
  ..………………………………..
  end;
end;

И массив A считывается в основной программе в массив С:
Var
    С: Matr;
    variable: tParams;

implementation
…………………………..
Procedure Matrix_A (p:Pointer); external ' ../DLL/My_DLL.dll';
………………………………………

Matrix_A (@variable);
C:=variable.A;

Короче, все вроде бы работает нормально. Массив создается, считывается правильно. Но когда я закрываю основную программу выдается глюк:
Project Project1.exe raised exception class EInvalidPointer with message 'Invalid pointer operation'.
Process stopped. Use Step or Run to continue.
Если процедурку, которая создает массив засунуть в основную программу, а DLL вообще не использовать, то никаких глюков не выводится.

Всего сообщений: Нет | Присоединился: Never | Отправлено: 24 фев. 2007 18:43 | IP

Отправка ответа:
Имя пользователя   Вы зарегистрировались?
Пароль   Забыли пароль?
Сообщение

Использование HTML запрещено

Использование IkonCode разрешено

Смайлики разрешены

Опции отправки

Добавить подпись?
Получать ответы по e-mail?
Разрешить смайлики в этом сообщении?
Просмотреть сообщение перед отправкой? Да   Нет
 

Переход к теме
<< Назад Вперед >>
Одна страница

Форум работает на скрипте © Ikonboard.com