Вопрос о передачи данных между приложениями
От: wbear  
Дата: 09.09.25 13:16
Оценка:
Добрый день коллеги!

Возник вопрос в части реализации одной задачки.

Начнем с того, что у нас есть.
В свое время наша фирма разработала по ТЗ заказчика вспомогательную программу, одна из функций которой была работа с аппаратными средствами).
Программа написана на С++. Программу внедрили и сдали клиенту в 1998г. По мере поступления запросов от клиента, функционал проги дописывался.
Теперь о главном. Во время внедрения программы у клиента, часто возникала проблема с данными передаваемыми аппаратным средствам.
Для контроля за передаваемыми данными с нашей стороны была написана DD.DLL, которая записывала лог передаваемых данных(в dd.dll только одна функция csr_DbgWriteData(char*).
В функцию передается строка с данными). При запуске программы, программа ищет DD.DLL, динамически ее загружает и записывает данные в файл.

Теперь о проблеме
Часть ошибок нашли и исправили. Но осталась группа ошибок которые периодически "вылазят" еще, и которые можно выявить только анализируя принимаемые и передаваемые данные аппаратуре.

Что хочется сделать
Хочется написать отдельную программу, которая в реальном времени получает внутренние данные из нашей DD.DLL(т.е. из нашей основной программы). Проводит анализ полученных данных и визуализирует полученную информацию.


Что у нас есть, что можем, как хочется сделать
Мы можем передать указатель на класс, который содержит внутренние данные программы в нашу функцию (перепишем функцию csr_DbgWriteData(char*, CCSR*) )
Закидываем нашу DD.DLL в каталог программы.
Запускаем приложение клиента. В момент передачи и приема данных находим DD.DLL динамически ее загружаем. По необходимости вызываем DbgWriteData. После завершения процесса обмена данными выгружаем нашу DLL.
Класс CCSR содержит данные, многие из которых являются указателями на классы или структуры данных(собственная реализация LIST).

Вопрос
Как наилучшим образом организовать передачу данных между процессами(между основной программой(а точнее сказать DD.DLL) и новым приложением) с учетом что это указатели на данные?
Причем разработка дополнительной новой программы будет вестись на Visual Studio 6.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.