为了在Tcl中调用C#dll,我用COM-visible编译了这个C#dll,然后使用TCOM来调用它。但是当我尝试调用DLL中定义的一个重载API时,我发现了一个问题。例如:
在C#DLL中,我定义了以下API:
// API #1
public void init(string name, int id)
{
Console.WriteLine("init " + name + " " +id)
...
}
//API #2
public void init(string name)
{
Console.WriteLine("Only init " + name);
...
}
然后在tcl:
% $handle init "aaaa" 0x3 # this line is succesfull
init aaaa 3
% $handle init "bbbb" # this line is failed.
wrong # args: should be "init name id"
它似乎只承认了第一个编写的API。 有人之前遇到过这个问题吗?关于如何从同一个程序调用这两个函数的任何建议?