![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как через iStream передавать данные в dll и получать обратно? [D7]
or © (2006-09-26 01:16:00)Есть TMemoryStream, с моими данными. Надо как то перекинуть их в iStream, отправить в dll, там обработать, вернуть обратно, и переписать обратно в TMemoryStream. Нет ли какого нибудь примера, как это можно сделать ?
Использую iStream потому, что он есть и в Си.
Percent (2006-09-27 02:11:00) [21]См. TOLEStream
var
OS: TOleStream;
MS: TMemoryStream;
Stream: IStream;
...
OS := TOLEStream.Create(Stream);
try
MS.CopyFrom(OS, OS.Size);
finally
OS.Free;
end;
or (2006-09-27 02:06:00) [22]
> Сергей М. © (26.09.06 08:18) [4]
>
> Надо понимать, некая DLL-функция, которую ты хочешь вызвать,
> требует одним из параметров именно IStream ?
>
> Приведи сишный прототип этой ф-ции ..
Нет. Это я делаю плагины к программе. Мне надо передать в dll большие и сложные данные, переменной длины, а потом получить такие же большие и сложные данные тоже переменной длины.
Мне сказали, что для этого можно использовать iStream, потому, что он есть и в Си и в Дельфи. Поэтому я написал две функции, паковки и распаковки данных в/из потока TMemoryStream. И вот теперь интересютсь как мне их передать через iStream.
Если есть какой то другой способ решения этой задачи, без iStream, но чтобы работал и в Си и в Дельфи, то какой ?
alex_*** (2006-09-26 13:33:00) [23]напиши свой класс, отнаследуй от TMemoryStream и реализуй в нем iStream. Как-то так, видимо
Сергей М. (2006-09-26 08:18:00) [24]Надо понимать, некая DLL-функция, которую ты хочешь вызвать, требует одним из параметров именно IStream ?
Приведи сишный прототип этой ф-ции ..
or (2006-09-26 06:45:00) [25]Товарищи мастера? Помогите, пожалуйста?
or (2006-09-26 01:35:00) [26]iStream описан в Ole2.pas .
or (2006-09-26 01:27:00) [27]Документации и примеров в справке Delphi 7 почти нету. В Гугле тоже как-то глухо.