Форум: "Начинающим";
Текущий архив: 2011.05.08;
Скачать: [xml.tar.bz2];
Внизошибка AV при получении динамического массива из длл Найти похожие ветки
← →
Тимоха111 (2011-02-01 23:33) [0]Есть программа, которая подгружает длл и получает структуру 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-01 23:34) [1]да, используется delphi 7, windows xp
← →
Тимоха111 (2011-02-01 23:34) [2]
var
myr:tmyrec; // опечаточка была
..
loadlibrary
← →
Ega23 © (2011-02-01 23:41) [3]Когда DLL создавал, большой комментарий строк на 20, поди, удалил не читая?
← →
Тимоха111 (2011-02-01 23:42) [4]вопрос снимается, после перезапуска delphi, все заработало, очевидно глюк словила до этого)))))
Слава общему менеджеру памяти!!!!
← →
Тимоха111 (2011-02-01 23:43) [5]Ega23, как же, прочитал) без него бы не использовал sharemam ;)
← →
Ega23 © (2011-02-02 01:34) [6]
> Слава общему менеджеру памяти!!!!
Не факт.
← →
Германн © (2011-02-02 02:47) [7]
> Тимоха111 (01.02.11 23:42) [4]
>
> вопрос снимается, после перезапуска delphi, все заработало,
> очевидно глюк словила до этого)))))
>
Рано радуешься.
AV такая подлая штука, что показывается только иногда (в зависимости от погоды :).
← →
Palladin © (2011-02-02 02:48) [8]ага, и sharemem конечно в модуле прописан
← →
Тимоха111 (2011-02-02 02:50) [9]я так понял что его надо прописать и в модуле и в основной программе, разве не так?
← →
Palladin © (2011-02-02 02:54) [10]что в твоем понимании модуль?
← →
Тимоха111 (2011-02-02 02:59) [11]dll
← →
Palladin © (2011-02-02 02:59) [12]ну а unit ты как называешь?
← →
Германн © (2011-02-02 03:02) [13]
> Palladin © (02.02.11 02:48) [8]
>
> ага, и sharemem конечно в модуле прописан
>
О каком модуле идёт речь, Тимур?
В первом посте вроде всё ясно указано.
← →
Palladin © (2011-02-02 03:06) [14]
> sharemem подключен первым в списке подключаемых модулей
ни разу не ясно... где оно подключено... аффтор, развей сомненья, расскажи, как файл называется в котором "sharemem подключен первым в списке подключаемых модулей"
← →
Тимоха111 (2011-02-02 03:08) [15]project1.dpr -основная прога
unit1.pas - тут тоже прописал
ну и в dpr dll"ки
← →
Германн © (2011-02-02 03:11) [16]
> Palladin © (02.02.11 03:06) [14]
>
>
> > sharemem подключен первым в списке подключаемых модулей
>
> ни разу не ясно
Тимур, ну ясно уже всё. Уймись.
← →
Palladin © (2011-02-02 03:38) [17]
> Тимур, ну ясно уже всё.
ну вот ты был прямо так уверен что именно в dpr а не в Unit1? хотя, заметь, это автором не сказано было. он даже dll - модулями называет. программист не терпит неясностей. все, унялся... надоело...
← →
Германн © (2011-02-02 03:49) [18]
> все, унялся... надоело...
>
Хм. Да.
Похоже я плохо читал. :(
Не обижайся, Тимур. Пожалуйста.
Я был не прав. Читал "с конца".
Прими мои извинения.
← →
Anatoly Podgoretsky © (2011-02-02 10:57) [19]
> как же, прочитал
> глюк словила
Как же так?
← →
Юрий Зотов © (2011-02-02 11:48) [20]
> Тимоха111 (02.02.11 03:08) [15]
> project1.dpr -основная прога
> unit1.pas - тут тоже прописал
>
> ну и в dpr dll"ки
Из unit1 уберите, это лишнее. Достаточно в обоих DPR, но строго самым первым.
← →
Тимоха111 (2011-02-02 12:41) [21]
> Из unit1 уберите, это лишнее. Достаточно в обоих DPR, но
> строго самым первым.,
так и сделал, спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.05.08;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.004 c