Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
ВнизTMemoryStream + dll Найти похожие ветки
← →
1иван (2008-02-11 21:51) [0]Мне нужно из программы передать TMemoryStream в библиотеку dll и вернуть из библиотеки другой TMemoryStream с результатом.
Входящий размер TMemoryStream не равен возвращаемому.
Как лучше поступить?
Спасибо.
← →
ketmar © (2008-02-11 22:04) [1]так и поступать. не забыть только uses sharemem.
---
Understanding is not required. Only obedience.
← →
1иван (2008-02-11 22:08) [2]На самом деле хотелось бы избежать использования sharemem - без дополнительной библиотеки.
← →
Leonid Troyanovsky © (2008-02-11 22:13) [3]
> 1иван (11.02.08 21:51)
> Как лучше поступить?
http://www.podgoretsky.com/DM/BadTips.html#BT-03
> На самом деле хотелось бы избежать использования sharemem
> - без дополнительной библиотеки.
Для избежания использования дополнительной библиотеки
надо избегать использование дополнительных библиотек.
--
Regards, LVT.
← →
1иван (2008-02-11 22:17) [4]Я знаю про этот плохой совет, поэтому и спрашиваю, т.к. сам не уверен как поступить. Избежать использование dll не удастся.
← →
ketmar © (2008-02-11 22:22) [5]>[2] 1иван (2008-02-11 22:08:00)
http://www.google.com/search?client=opera&rls=en&q=fastsharemem&sourceid=opera&ie=utf-8&oe=utf-8
---
Understanding is not required. Only obedience.
← →
Leonid Troyanovsky © (2008-02-11 22:30) [6]
> 1иван (11.02.08 22:17) [4]
> сам не уверен как поступить. Избежать использование dll
> не удастся.
Где одна - там и две.
Какая нах разница.
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2008-02-11 22:37) [7]> 1иван (11.02.2008 22:08:02) [2]
Sharemem не требуется, а вот от ДЛЛ надо отказаться, заменить на BPL
← →
DVM © (2008-02-11 22:41) [8]Именно TMemoryStream проблем скорее всего не вызовет при передаче в dll.
Даже ShareMem не понадобится. Но так делать все равно не стоит.
Вот тут экспериментировали уже:
http://forum.sources.ru/index.php?showtopic=192689&view=showall
← →
Leonid Troyanovsky © (2008-02-11 22:48) [9]
> DVM © (11.02.08 22:41) [8]
> Именно TMemoryStream проблем скорее всего не вызовет при
> передаче в dll.
Вот те и - здрасте.
Как же не вызовет, а может - изменить.
--
Regards, LVT.
← →
DVM © (2008-02-11 22:53) [10]
> а может - изменить.
Не понял вот эту фразу.
← →
Leonid Troyanovsky © (2008-02-11 22:59) [11]
> DVM © (11.02.08 22:53) [10]
> Не понял вот эту фразу.
Дельфийский ММ в длл может и перераспределить память.
--
Regards, LVT.
← →
DVM © (2008-02-11 23:06) [12]
> Leonid Troyanovsky © (11.02.08 22:59) [11]
Это да, поэтому размер TMemoryStream переданного в dll внутри нее менять нельзя. А вот содержимое можно.
Но, учитывая
> Входящий размер TMemoryStream не равен возвращаемому.
Это не подходит.
Я ни в коем случае не агитирую за такой метод работы, просто иногда можно и без ShareMem и пакетов обойтись.
← →
ketmar © (2008-02-12 00:34) [13]>[12] DVM © (2008-02-11 23:06:00)
>иногда можно и без ShareMem и пакетов обойтись
ну вон же я дал ссылку в [5]. один модуль, no runtime penalties, no extra DLLs. дёшево и сердито. %-)
---
Understanding is not required. Only obedience.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.043 c