如何通过 COM 互操作在 .NET 对象上调用静态方法?

Posted

技术标签:

【中文标题】如何通过 COM 互操作在 .NET 对象上调用静态方法?【英文标题】:How can I invoke a static method on a .NET object over COM interop? 【发布时间】:2010-11-26 14:58:03 【问题描述】:

是否可以通过 COM 互操作在 .NET 对象上调用静态方法?

我知道我可以编写一个包装类。如果我不想这样做呢?

【问题讨论】:

【参考方案1】:

不,你不能这样做。 COM 互操作通过对象而不是类型进行通信。

我知道的解决方法...

最好的解决方法是在实例上创建一个包装器方法来对类型进行调用。是的,这仍然需要一个实例,因此它无法达到目的,但这是您的最佳选择。 反向 PInvoke:仍然需要将函数指针向下传递到 C++ 层

【讨论】:

我可以很简单地使用 .NET 4.0 和 DLR 魔法来做到这一点,嗯? @Cheeso,不是真的。根据您的问题陈述,您似乎正在尝试找到从本机-> 托管代码调用的解决方案。 DLR 只会帮助您从托管代码开始的情况。 啊,我必须了解更多。我以为会有一些神奇的 javascript-to-CLR 集成即将到来。

以上是关于如何通过 COM 互操作在 .NET 对象上调用静态方法?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 .NET 5 COM 互操作对象与 VB6 连接起来吗?

在 C++ 中使用 COM 互操作对象

如何将聚合 .NET COM 互操作添加到 ATL EXE 服务器?

interop dll如何轻松更新?

Visual Studio 2010,TlbImp 在 2.0 项目中生成 .net 4.0 互操作

如何指定我的 .NET 互操作应该使用哪个 COM 服务器?