Я написал контроллер устройства (rs232), и он успешно используется, однако пользователи хотят просматривать данные и управлять устройством (или, возможно, общаться через мою программу) из Excel. Я отклонил DDE как опцию и обнаружил, что RTD (IRtdServer), вероятно, является хорошим началом (хотя нет способа отправить данные обратно на «сервер» из клиента данных в реальном времени).
Я нашел эти ресурсы для части RTD:
http://support.microsoft.com/?id=327215
а также
http://support.microsoft.com/?id=327215
Это многопоточное приложение, и я уже добавил возможность иметь несколько прослушивателей на COM-порту, чтобы можно было обновлять несколько клиентов. Я добавлю интерфейс COM в EXE.
Но после этого мне нужен какой-то способ управления командами приложения / прокси на устройстве через приложение из Excel.
Какой лучший способ сделать это?
Возможно, другой интерфейс COM и вызов его из VBA или что-то? Я не знаком с использованием сценариев из Excel, поэтому, возможно, кто-то может предложить пример кода или ссылки, которые показывают и код для COM-объекта и сопровождающий код VB (A?)?
Имейте в виду, что это неуправляемое приложение C ++, и его сейчас нельзя преобразовать в управляемое или C #. Также приветствуются альтернативы, использующие C #, но это долгосрочное переписывание.
Спасибо
EDIT
У меня есть альтернатива для добавления поддержки COM в существующий EXE. Я думаю, что более гибко добавить двустороннюю связь (кроссплатформенную - может быть, boost или corba или просто прямой IP на основе моего собственного протокола сообщений)
COM-сервер (или два) может обернуть этот канал связи - каким бы он ни был. Это на самом деле не влияет на мой вопрос - я все еще хотел бы знать варианты управления внешним EXE из Excel.
EDIT
Отсутствие необходимости развертывания .NET для клиентов также является большим плюсом. многие из этих устройств находятся на компьютерах, которые являются довольно старыми и имеют, возможно, NT или XP на них, и я не рад увеличению моего пакета установки / установки с 700 КБ до смешного размера установки .NET ...