注册的COM接口如何链接到twapi的名字

本文关键字:twapi 链接 接口 COM 何链接 注册 | 更新日期: 2023-09-27 18:18:55

我想使用c#代码应用程序在tcl使用COM> twapi> tcl路径。通过学习"从tcl调用c#代码"wiki页面,我明白了两件事。我们需要编译c#代码与com接口寄存器VS选项。然后使用该命名空间名称。类名创建对象实例。但目前尚不清楚twapi(或tcom)将如何使用该com(或链接)。你能详细解释一下吗?提前感谢您。


c#代码
using System;
 namespace MyClassLib
 {
    public class Class1
    {
    public Class1()   {}
    public int Double (int val)  { return val * 2 ;  }
    }
 }

注册的COM接口如何链接到twapi的名字

当项目为COM Interop注册并构建时,类作为类名的提供者在系统的Registry中注册。tcom包知道如何使用这些信息。当你这样做的时候:

set myCom [tcom::ref createobject "ClassLibrary1.Class1"]

它消失了,并请求内置在Windows中的COM服务创建该对象的实例,并将其引用返回给你。该引用就是存储在变量中的内容。然后你可以调用对象的方法;它的语法是类似于tcl的,而不是类似于c#的,但是模型是一致的。

$myCom Double 6

是的,在幕后发生了很多复杂的事情,主要集中在IDispatch及其相关接口上。