![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибка AV при получении динамического массива из длл
Тимоха111 © (2011-02-01 23:33:00)Есть программа, которая подгружает длл и получает структуру record из нее.
Данный рекорд прописан и в длл и в самой программе.
TMyRec = record
name : WideString;
Mass1:array of real;
end;
длл подгружается динамически, в ходе подзагрузки длл программа вызывает функцию GetName, которая возвращает структуру TMyRec. В программе вызывается так:
var
myr:tmyrect;
..
loadlibrary
...
myr := GetName;
...
freelibrary
так вот, name из структуры передается нормально и текст программа получает, а вот с динамическим массивом вылезает AV, причем даже при использовании общего менеджера памяти, sharemem подключен первым в списке подключаемых модулей что в программе что в длл, ошибка лезет уже на этой строчке myr := GetName;
Тимоха111 (2011-02-02 12:41:00) [1]
> Из unit1 уберите, это лишнее. Достаточно в обоих DPR, но
> строго самым первым.,
так и сделал, спасибо
Юрий Зотов (2011-02-02 11:48:00) [2]
> Тимоха111 (02.02.11 03:08) [15]
> project1.dpr -основная прога
> unit1.pas - тут тоже прописал
>
> ну и в dpr dll'ки
Из unit1 уберите, это лишнее. Достаточно в обоих DPR, но строго самым первым.
Anatoly Podgoretsky (2011-02-02 10:57:00) [3]
> как же, прочитал
> глюк словила
Как же так?
Германн (2011-02-02 03:49:00) [4]
> все, унялся... надоело...
>
Хм. Да.
Похоже я плохо читал. :(
Не обижайся, Тимур. Пожалуйста.
Я был не прав. Читал "с конца".
Прими мои извинения.
Palladin (2011-02-02 03:38:00) [5]
> Тимур, ну ясно уже всё.
ну вот ты был прямо так уверен что именно в dpr а не в Unit1? хотя, заметь, это автором не сказано было. он даже dll - модулями называет. программист не терпит неясностей. все, унялся... надоело...
Германн (2011-02-02 03:11:00) [6]
> Palladin © (02.02.11 03:06) [14]
>
>
> > sharemem подключен первым в списке подключаемых модулей
>
> ни разу не ясно
Тимур, ну ясно уже всё. Уймись.
Тимоха111 (2011-02-02 03:08:00) [7]project1.dpr -основная прога
unit1.pas - тут тоже прописал
ну и в dpr dll'ки
Palladin (2011-02-02 03:06:00) [8]
> sharemem подключен первым в списке подключаемых модулей
ни разу не ясно... где оно подключено... аффтор, развей сомненья, расскажи, как файл называется в котором "sharemem подключен первым в списке подключаемых модулей"
Германн (2011-02-02 03:02:00) [9]
> Palladin © (02.02.11 02:48) [8]
>
> ага, и sharemem конечно в модуле прописан
>
О каком модуле идёт речь, Тимур?
В первом посте вроде всё ясно указано.
Тимоха111 (2011-02-02 02:59:00) [10]dll
Palladin (2011-02-02 02:59:00) [11]ну а unit ты как называешь?
Palladin (2011-02-02 02:54:00) [12]что в твоем понимании модуль?
Тимоха111 (2011-02-02 02:50:00) [13]я так понял что его надо прописать и в модуле и в основной программе, разве не так?
Palladin (2011-02-02 02:48:00) [14]ага, и sharemem конечно в модуле прописан
Германн (2011-02-02 02:47:00) [15]
> Тимоха111 (01.02.11 23:42) [4]
>
> вопрос снимается, после перезапуска delphi, все заработало,
> очевидно глюк словила до этого)))))
>
Рано радуешься.
AV такая подлая штука, что показывается только иногда (в зависимости от погоды :).
Ega23 (2011-02-02 01:34:00) [16]
> Слава общему менеджеру памяти!!!!
Не факт.
Тимоха111 (2011-02-01 23:43:00) [17]Ega23, как же, прочитал) без него бы не использовал sharemam ;)
Тимоха111 (2011-02-01 23:42:00) [18]вопрос снимается, после перезапуска delphi, все заработало, очевидно глюк словила до этого)))))
Слава общему менеджеру памяти!!!!
Ega23 (2011-02-01 23:41:00) [19]Когда DLL создавал, большой комментарий строк на 20, поди, удалил не читая?
Тимоха111 (2011-02-01 23:34:00) [20]да, используется delphi 7, windows xp