我正计划将我现有的应用程序变成RTD 服务器。
该应用程序目前是用 C++ 编写的,虽然我最终会将它移植到 C#/Mono,但我希望能够使用 C++ 添加 RTD 功能。
我找到了一些示例代码(MSVCRTDServer)和这个站点:http ://weblogs.asp.net/kennykerr/archive/2008/10/29/excel-rtd-server-in-c.aspx
不幸的是,这些是 DLL,而且我很久以前就忘记了我所知道的所有 COM(摆脱困境)。
如何将 DLL 示例合并到 EXE 中?这显然是将 COM 服务器封装在 EXE 而不是 DLL 中。
编辑:
请注意,现有应用程序具有 MFC GUI。
编辑:
预期用途是运行现有的 GUI 应用程序 - 无需 COM/RTD 接口的客户端启动应用程序。(虽然我不会否认那会很好)
基本上我想用我自己的数据实现 IRTDServer 接口——以便 Excel(或其他应用程序)可以访问应用程序提供的动态数据。(这是一个与串行端口设备对话的程序 - 该设备的状态/状态会发生变化,我希望能够异步更新客户端的变化)
所以,我需要创建一个 COM 对象并注册它,以便客户可以“看到”它。
我不确定如何将 COM 对象添加到 exe 并让该 COM 对象实现现有/预定义的接口。
编辑我为此开始了赏金,所以我可以获得代码示例。显然,我太懒惰和愚蠢(或者可能只是对 COM 的过度厌恶),无法开始使用 Franci Penov 的现有答案。(这非常有用,也是一个很好的开始)
所以基本上我正在寻找的是:
代码以获取我现有的基于对话框的 MFC 应用程序,该应用程序运行了一堆线程并将其转换为 RTD 服务器(具有相同的 UI)
所有的 cocreate 和 CoThisandthat 等等。我在哪里把代码放在我的 exe 中?我如何扩展/实现 IRTD 的东西?
一个示例 MFC hello world 应用程序(基于对话框)的前后将得到公认的答案。
- 在应用程序之前包含 mfc 对话框应用程序的所有源代码。
- “after”应用程序,它基于步骤 #1 中的 MFC 应用程序,实现 RTD srver 接口及其所有源。(所有项目文件、源代码等)
- 在 GUI/Visual Studio 中采取的步骤,否则从步骤 1 创建步骤 2。(创建 IDL 等其他文件。)
理想情况下,这是为 VS2008 提供的,但任何版本都可以使用。
谢谢。