![]() |
1
0
一般来说,不能。只能在这个COM接口和同一对象上的其他COM接口中获取方法。 |
![]() |
2
0
这取决于你试图调用的未发布的方法是否有一个你无法看到的内部COM(或C++)实现。COM接口要求实现对象提供固定位置
对于本机COM库,COM vtable方案通常与运行时内部设置方式的二进制图像相对应。因为这些表是不可移动的,并且与理解良好的COM需求绑定在一起,所以不安全的托管代码可以浏览并找出如何处理任何事情。举例来说,您可以定义一个接口
请注意,如果要启用
此时,您需要声明一个托管委托,以便通过这个函数指针进行调用。因为
不管怎样,这一切都是有效的,甚至没有那么粗略或有争议;我们基本上只是在COM规范中建立良好的步行结构,就像CLR的默认封送处理代码一样。 现在说了这么多 ,如果您感兴趣的COM功能源于托管环境,如您所指出的可能是F,则上述功能很少或都不适用。托管运行时环境有机会在更复杂的基础上提供COM vTables,例如:
尽管我不确定这些点中的哪一点适用于您描述的情况,但似乎它们的某些或全部可能会因clr主机的实现细节而有所不同。不幸的是,主机部署这些优化中的任何一个都足以屏蔽上述vtable监听类型。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 6 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 6 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 6 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 6 月前 |