Форум: "Основная";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c