首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Excel DNA和RTD服务器COM可见性

Excel DNA和RTD服务器COM可见性
EN

Stack Overflow用户
提问于 2019-05-17 22:15:48
回答 1查看 741关注 0票数 2

在每个Excel样本中,RTD服务器impl。标记为COM可见。示例:https://github.com/Excel-DNA/Samples/blob/master/RtdClocks/RtdClock-ExcelRtdServer/RtdClockServer.cs

根据我在将Excel加载项添加到Excel时的测试,不需要COM可见性。

什么是使RTD激励的原因。能看见吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-18 06:41:54

从Excel中使用基于Excel的RTD服务器有两种方法:

  • 没有注册和内部调用XlCall.RTD(...)或,
  • 通过注册类型(调用ExcelDna.ComInterop.ComServer.DllRegisterServer()),然后直接调用=RTD(...)函数。

对于正常的第一种情况,您是正确的,RTD服务器不需要ComVisible -Excel在内部进行连接,并且不需要注册就公开类。对于第二种情况,注册为COM导出的类型需要ComVisible (显式地或对类型或程序集没有ComVisible指令--因为ComVisible的默认值是“true”)。

如果您尝试使用包装器函数,则这个故事有点复杂,但是要在Excel中注册一个稳定的ProgId,以便在重新打开保存的工作表时可以使用“旧值”。在这种情况下,您需要注册COM并将包装器更改为调用XlCall.Excel(XlCall.xlfRtd, ...)

所以你是对的,对于大多数Excel-DNA样本来说,它并不是必需的。

这些年来一切都有点混乱..。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56194196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档