- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此问题与 Kenny Kerr 在“Excel RTD 服务器:C# 接口(interface)”上的博文有关,该博文可在 here 中找到。 ,这应该允许您在不包含对任何特定 Excel 类型库的引用的情况下构建 Excel RTD 服务器;必须包含引用使您的 RTD 服务器 Excel 版本特定(我相信向前兼容,但不向后兼容)。不依赖 Excel 类型库可简化将 RTD 部署到具有不同 Excel 版本(XP、2003、2007 和 2010)的机器上。
现在,没有 RTD 引用特定的 Excel 类型库来获取接口(interface) IRtdServer 和 IRTDUpdateEvent 是非常好的。但我正忙着让肯尼的建议奏效。
这是我所做的:
1) Added IRtdServer.cs and IRTDUpdateEvent.cs to my RTD project and put the interface definitions from your blog into those files (not changing the GUIDs).
2) Removed any reference to an Excel type library.
3) Build and regasm OK.
Const RTDProgID As String = "MyRTD.RTD"
Const UpdateEventProgID As String = "MyRTD.UpdateEvent"
' Create the RTD server object.
Dim rtd As Object
Set rtd = CreateObject(RTDProgID)
' Start the RTD server, passing in a callback object.
Dim callback As Object
Set callback = CreateObject(UpdateEventProgID)
Dim status As Long
status = rtd.ServerStart(callback) <---- Fails here.
' ProgIDs for COM components.
Const RTDProgID = "MyRTD.RTD"
Const UpdateEventProgID = "MyRTD.UpdateEvent"
' Real-time data (RTD) object
Dim rtd
Set rtd = CreateObject(rtdID)
' Callback object. This is how
' the RTD would notify Excel of
' new data updates.
Dim callback
Set callback = CreateObject(UpdateEventProgID)
' Start the RTD server, passing in
' the callback object.
Dim status
status = rtd.ServerStart(callback) <---- Fails here.
Best regards, Andrew Sheppard
最佳答案
在对此进行了更多工作并与 Kenny Kerr 交换了一些电子邮件之后,很明显问题出现了,因为具有相同 GUID 和使用 ComImport 的接口(interface)如果在不同的程序集中定义,即使已定义,它们也不会被视为同一事物同样。
我有一个进程内 (DLL) 和进程外 (EXE) 实时数据 (RTD) 服务器,它们共享完全相同的代码库;也就是说,相同的 RTD,不同的执行模型。我采用了 IRTDUpdateEvent 并将其放入自己的程序集中。 IRTDUpdateEvent 当然是由 Excel 对象库实现的;但我自己定义了它,因此我不必让我的 RTD 依赖于特定版本的 Excel(2002、2003、2007、2010),从而使部署更简单。
如果我使用 C# 4.0,这将不是问题,因为“类型等效”的新特性。您可以使具有相同 GUID 的类/接口(interface)表现得好像存在相同(这更有意义),而不管它们是在哪里定义的。但我的目标平台是 4.0 之前的版本。
修复方法是将 IRTDUpdateEvent 从其自己的程序集中移回 DLL 和 EXE 程序集。完成后,DLL 和 EXE RTD 服务器都可以与 Excel 和 VBA 以及 VBScript 和 C# 客户端一起使用。
关于c# - Excel RTD COM 服务器 - 无法将 UpdateEvent(类)转换为 IRTDUpdateEvent(接口(interface)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3954163/
我在寻找答案时遇到了一些问题。 在 Sheet1 中,我有一系列单元格(“A4:Q4”),它们都具有特定的 RTD 函数,它们从外部程序收集实时库存数据。这些单元格每隔几秒钟更新一次,具体取决于父程序
我正在尝试将 RTD 服务器嵌入到预先存在的 C# 应用程序中。 Microsoft 文档声明“RTD 服务器可以作为 ActiveX DLL 或 作为 .exe 存在,在同一台本地计算机 或远程服务
当数据从 C4:C7 列的范围呈现时,此代码可以正常工作,但是我的工作表是使用 C4:K4 的一行中的数据设置的。我不能得到一行而不是一列来解决。有什么帮助吗?谢谢 . Sub RecordData(
我想更改 Read the Docs theme 的背景颜色对于狮身人面像文档。 主题是使用 sass 编写的,我找到了没有定义的变量 $section-background-color。 如果我在元
我订阅了一个单元格,所以当我将公式放入单元格时,它会正确更新。 现在,我要返回一个具有多个值的对象,并且我想在 Excel 单元格中显示所有这些值。是否可能只在 1A 中放入一个公式,订阅一次,一次获
我在 C# 中为 Excel 创建了一个 RTD 服务器,它不断地用数据更新单元格并且需要使用多个 Excel 实例。问题是,如果我在多个 Excel 实例中有相同的 RTD 公式,并且我删除了其中一
我在向我的 Sphinx .html 文件添加自定义页脚时遇到了一些问题。我正在使用 sphinx_rtd_theme。我检查过这个 post并尝试过(以及评论中的一些建议)但无济于事。我不确定我错过
我订阅了一个 RTD 金融应用程序,可以选择通过 DDE 将实时数据导出到 Excel。因此,使用 DDE 复制/粘贴应用程序选项,我创建了一个包含实时 DDE 财务数据的 Excel 表。单元格实际
我的目标是在 python 中获取 rtd 服务器的更新 我在 excel 中进行了以下调用,该调用正在运行: =RTD("xrtd.xrtd";;"EUCA") 对于 python,我发现了以下客户
我只是从 zeromq 开始。我现在有各种平台/语言可以很好地相互交谈,我必须承认 - 它做得非常好。 我想做的最后一 block 拼图是(作为标题)。很简单,在excel中创建一个单元格 =RTD(
我有一个以编程方式生成的 sphinx-doc 源,它使用 Read-The-Docs 主题。源树看起来像: source ├── conf.py ├── index.rst ├── models │
我想在 Sphinx RTD 网站上每个页面的顶部添加一个简单的警告指令: .. attention:: The next major release of this project will l
全部, 这是对我的问题 here 的跟进. 我的设置: Visual Studio 10 C#语言 Excel 2007+ Windows XP+ 我想实现的是: 使用自定义功能区组件和自定义任务 P
我们构建了一个 .NET COM/Excel RTD 服务器(.NET 程序集),该服务器已在各种机器上使用多年(即我们知道它可以工作,并且我们的标准安装方法也可以工作)。我们有一个用户在另一台机器上
我想用 C++ 编写一个 excel RTD 服务器,但除了这个 http://weblogs.asp.net/kennykerr/archive/2008/12/02/Rtd5.aspx 之外还没有
我有 excelRTDserver.py通过将 EXCEL_TLB_MINOR 值更改为 7,在 Excel 2010(32 位)中启动并运行。我可以在加载项列表中看到服务器,如果我在单元格中输入 =
我已经创建了 Excel RTD 服务器,在 Debug模式下完成所有实现之后,我能够运行 RTD 并且它工作正常。但是,当我在 Release模式下获取 dll 并将其带到另一个系统,并使用“reg
在每个 Excel DNA RTD 示例中,RTD 服务器实现。被标记为 COM 可见。示例:https://github.com/Excel-DNA/Samples/blob/master/RtdC
在 Firebase 实时数据库中,这是一个非常常见的事务性事物 “表”A - 将其视为“待定” “表格”B - 将其视为“结果” 某些状态发生了,您需要将一个项目从 A 移动到 B。 所以,我当然是
我有一个 C# RtdServer,它从 TCPListener 接收数据更新。它按预期运行,除了在某些时候它仍然有事件 RTD() 在工作表 ServerTerminate() 被调用时,我似乎无法
我是一名优秀的程序员,十分优秀!