Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.11;
Скачать: CL | DM;

Вниз

DLL   Найти похожие ветки 

 
Новик ©   (2003-07-25 16:40) [0]

Ув. мастера! Объясните человеку! Есть библиотека dll
и функция в оной. Функция типа Show(var s:string).
Когда я использую (динамически)эту функцию у себя в проге,
то если s не изменило своего значения, то все проходит OK.
Если же s изменилась, то функция без проблем выполняется, но
при выполнении FreeLibrary выползает ужасная системная ошибка (
типа Access violation at Adres такой то)
которую не "гасит" даже try..except. Самое обидное, что кроме
этой ошибки все работает нормально. Даже можно заново без
проблем загрузить вышеописанную dll. Правда с теми же последствиями. Почему такая несправедливость?


 
MBo ©   (2003-07-25 16:44) [1]

sharemem?


 
aa5E1   (2003-07-25 16:52) [2]

Во первых... никогда не передавай Dll в значении тип String лучше делай это PChar. То есть Show(var s:PChar). Это даже написано когда создаеш в дельфи длл (только по английски).
Во вторых... попробуй пойти другим путем. Попробуй сделать так function Show(s: PChar):PChar;, т.е. твоя строка будет выдаваться как результат.
Если же у тебя на выходе уже есть чтото то тогда попробуй просто переделать в PChar может полегчает. Я сам никогда так заморочено стараюсь не делать.


 
ggsoft ©   (2003-07-25 17:05) [3]


> aa5E1 (25.07.03 16:52)

PChar - уже P(pointer) не надо - Show( var s:PChar).
и Show(s: PChar) :PChar - тоже не надо...
если уж не использовать String и ShareMem то -
function Show(lpszData: PChar; cbData: LongInt): LongInt; xxx

2 Новик - см. MBo


 
Новик ©   (2003-07-28 10:10) [4]

Спасибушки, попробуем.



Страницы: 1 вся ветка

Текущий архив: 2003.08.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
14-33344
Ravshan
2003-07-25 10:15
2003.08.11
Подскажите Editor или Viewer для DOS/WIN текста


1-33111
clim
2003-07-29 23:44
2003.08.11
Timer + Api


1-33170
Молодой человек
2003-07-27 02:43
2003.08.11
Ссылка


14-33335
Bless
2003-07-25 10:00
2003.08.11
Показать все директивы


3-33061
alexander_ua
2003-07-17 15:54
2003.08.11
Перенос данных с Paradox в Interbase.