![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMemoryStream + dll [D7, 2003]
1иван © (2008-02-11 21:51:00)Мне нужно из программы передать TMemoryStream в библиотеку dll и вернуть из библиотеки другой TMemoryStream с результатом.
Входящий размер TMemoryStream не равен возвращаемому.
Как лучше поступить?
Спасибо.
ketmar (2008-02-12 00:34:00) [1]>[12] DVM © (2008-02-11 23:06:00)
>иногда можно и без ShareMem и пакетов обойтись
ну вон же я дал ссылку в [5]. один модуль, no runtime penalties, no extra DLLs. дёшево и сердито. %-)
---
Understanding is not required. Only obedience.
DVM (2008-02-11 23:06:00) [2]
> Leonid Troyanovsky © (11.02.08 22:59) [11]
Это да, поэтому размер TMemoryStream переданного в dll внутри нее менять нельзя. А вот содержимое можно.
Но, учитывая
> Входящий размер TMemoryStream не равен возвращаемому.
Это не подходит.
Я ни в коем случае не агитирую за такой метод работы, просто иногда можно и без ShareMem и пакетов обойтись.
Leonid Troyanovsky (2008-02-11 22:59:00) [3]
> DVM © (11.02.08 22:53) [10]
> Не понял вот эту фразу.
Дельфийский ММ в длл может и перераспределить память.
--
Regards, LVT.
DVM (2008-02-11 22:53:00) [4]
> а может - изменить.
Не понял вот эту фразу.
Leonid Troyanovsky (2008-02-11 22:48:00) [5]
> DVM © (11.02.08 22:41) [8]
> Именно TMemoryStream проблем скорее всего не вызовет при
> передаче в dll.
Вот те и - здрасте.
Как же не вызовет, а может - изменить.
--
Regards, LVT.
DVM (2008-02-11 22:41:00) [6]Именно TMemoryStream проблем скорее всего не вызовет при передаче в dll.
Даже ShareMem не понадобится. Но так делать все равно не стоит.
Вот тут экспериментировали уже:
http://forum.sources.ru/index.php?showtopic=192689&view=showall
Anatoly Podgoretsky (2008-02-11 22:37:00) [7]> 1иван (11.02.2008 22:08:02) [2]
Sharemem не требуется, а вот от ДЛЛ надо отказаться, заменить на BPL
Leonid Troyanovsky (2008-02-11 22:30:00) [8]
> 1иван (11.02.08 22:17) [4]
> сам не уверен как поступить. Избежать использование dll
> не удастся.
Где одна - там и две.
Какая нах разница.
--
Regards, LVT.
ketmar (2008-02-11 22:22:00) [9]>[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.
1иван (2008-02-11 22:17:00) [10]Я знаю про этот плохой совет, поэтому и спрашиваю, т.к. сам не уверен как поступить. Избежать использование dll не удастся.
Leonid Troyanovsky (2008-02-11 22:13:00) [11]
> 1иван (11.02.08 21:51)
> Как лучше поступить?
http://www.podgoretsky.com/DM/BadTips.html#BT-03
> На самом деле хотелось бы избежать использования sharemem
> - без дополнительной библиотеки.
Для избежания использования дополнительной библиотеки
надо избегать использование дополнительных библиотек.
--
Regards, LVT.
1иван (2008-02-11 22:08:00) [12]На самом деле хотелось бы избежать использования sharemem - без дополнительной библиотеки.
ketmar (2008-02-11 22:04:00) [13]так и поступать. не забыть только uses sharemem.
---
Understanding is not required. Only obedience.