【发布时间】:2023-04-09 09:25:01
【问题描述】:
我编写了一个设备控制器 (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# 的替代方案,但这是长期重写。
谢谢
编辑 我有另一种方法可以将 COM 支持添加到现有的 EXE 中。我认为添加双向通信更灵活(跨平台 - 可能是 boost 或 corba,或者只是基于我自己的消息协议的直接 IP)
一个(或两个)COM 服务器可以封装该通信通道——不管它是什么。这根本不会影响我的问题 - 我仍然想知道从 Excel 控制外部 EXE 的选项。
编辑 不必向客户推出 .NET 也是一大优势。这些设备中的许多都在相当旧的 PC 上,并且可能带有 NT 或 XP,我不喜欢将我的安装/安装包从 700KB 增加到荒谬的 .NET 安装大小......
【问题讨论】:
标签: c++ excel com real-time-data