在每个Excel样本中,RTD服务器impl。标记为COM可见。示例:https://github.com/Excel-DNA/Samples/blob/master/RtdClocks/RtdClock-ExcelRtdServer/RtdClockServer.cs
根据我在将Excel加载项添加到Excel时的测试,不需要COM可见性。
什么是使RTD激励的原因。能看见吗?
发布于 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样本来说,它并不是必需的。
这些年来一切都有点混乱..。
https://stackoverflow.com/questions/56194196
复制相似问题