我编写了一个设备控制器(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 安装大小......