Здравствуйте, Shart, Вы писали:
S>Вообщем надо передать изображение из Delphi (простой TBitmap) в C++ Builder 6, чтобы там его обработать. Причём надо делать это почти мгновенно, потому что изображение из Delphi берётся с камеры.
Что значит "передать из дельфи в билдер"?
— у тебя два модуля одной программы (т.е. exe и dll) написаны на разных языках
— две программы, запущенные одновременно
— вторая программа запускается по мере необходимости (так сказать, unix way)
— программы запускаются по очереди
И что значит "чтобы там обработать"
— первая сторона родила изображение (захватила с видеокамеры), вторая приняла с концами
— первая сторона родила, вторая обработала и вернула
S>P.S. Я, кстати, пытался делать через буфер обмена, но это очень не удобно и иногда изображение не проходит...
За это убивать надо! А если там пользователь что-то держал? Или наоборот, он туда что-то положил невовремя?
В пределах одной программы — проще всего передавать в том виде, как они хранятся.
Казалось бы, дельфи и билдер используют общую библиотеку — так, может, можно прямо TBitmap передавать? Если нельзя — то передавай HBITMAP.
Между одновременно запущенными программами — большие данные можно через общую память (memory mapped file).
Наверняка, захват производится в DIB, и ты его уже потом конвертируешь в DDB. Так вот, не конвертируй, а пиши в MMF.
Синхронизацию (и даже конвеер с небольшой очередью) наладить — дело наживное.
... << RSDN@Home 1.2.0 alpha rev. 655>>