![]() |
Передача динамического массива из dll в приложение
Возник затык, так сказать, не могу сообразить как организовать передачу динамического массива из dll в приложение. Причем передача данных должна проходить в режиме реального времени, т.е. как только в массиве появляется новый элемент, он тут же толжен быть передан в приложение.
Забыл добавить, все пишется на Delphi. |
Не имел особо дел с дллбками, но на лабах по осям, для передачи данных между процессами использовали Pipes (каналы).
Цитата:
Если заинтересовался, то смотри в MSDN: CreatePipe, ReadFile, WriteFile. |
Цитата:
А так сообствено говоря Pipes в .нете решают такие задачи, также можно передавать по tcp-каналам. Наверняка в дельфи что-то подобное должно быть |
Kvarx, Gunslinger - пасиб.
Тогда еще такой вопрос, с какой скоростью просходит обращение к каналам? Новые элементы в массиве могут появляться со скоростью до 50 шт/с, соответственно суммарное (запись + чтение) время обращения в каналу должно быть меньше 20 мс. З.Ы. Kvarx, у меня ник lyuq, последняя q, а не g. |
Быстро из своей dll в приложение данные можно переслать так:
Приложение передает в dll адрес процедуры своего обработчика новых данных. Как только dll получает новые данные, сразу вызывает обработчик приложения. Параметрами обработчика может быть указатель на динамический массив, простого копирования данных внутри одного процесса вполне достаточно. Если непонятно могу напасать небольшой пример программы. |
MrSerg
Пасиб! Напиши, plz, небольшой пример программы. |
Небольшой пример:
Код:
// основная программа |
| Часовой пояс GMT +4, время: 21:27. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.