Re[2]: Изображение из Delphi в Builder
От: Shart  
Дата: 10.04.08 13:42
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Shart, Вы писали:


S>>Вообщем надо передать изображение из Delphi (простой TBitmap) в C++ Builder 6, чтобы там его обработать. Причём надо делать это почти мгновенно, потому что изображение из Delphi берётся с камеры.


К>Что значит "передать из дельфи в билдер"?

К>- у тебя два модуля одной программы (т.е. exe и dll) написаны на разных языках
К>- две программы, запущенные одновременно
К>- вторая программа запускается по мере необходимости (так сказать, unix way)
К>- программы запускаются по очереди

К>И что значит "чтобы там обработать"

К>- первая сторона родила изображение (захватила с видеокамеры), вторая приняла с концами
К>- первая сторона родила, вторая обработала и вернула

S>>P.S. Я, кстати, пытался делать через буфер обмена, но это очень не удобно и иногда изображение не проходит...


К>За это убивать надо! А если там пользователь что-то держал? Или наоборот, он туда что-то положил невовремя?


К>

К>В пределах одной программы — проще всего передавать в том виде, как они хранятся.
К>Казалось бы, дельфи и билдер используют общую библиотеку — так, может, можно прямо TBitmap передавать? Если нельзя — то передавай HBITMAP.

К>Между одновременно запущенными программами — большие данные можно через общую память (memory mapped file).

К>Наверняка, захват производится в DIB, и ты его уже потом конвертируешь в DDB. Так вот, не конвертируй, а пиши в MMF.
К>Синхронизацию (и даже конвеер с небольшой очередью) наладить — дело наживное.

Сейчас есть exe на Delphi и DLL на BCB. В самой программе можно получить только TBitmap. Но передать TBitmap не получится, т.к. передаётся только ссылка...а с ней ничего не могу сделать...
Задача DLL — по исходной картинке выдать просто число. Что дальше будет с картинкой уже не важно.

P.S. И ещё, вроде читал, что одна программа не может работать с объектами другой программы, т. к. у них разные адресные пространства...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.