Version 1 of HOW TO - Call C# from tcl code

Updated 2007-02-02 22:27:59

tjk The following item appeared on comp.lang.tcl concerning how to call a C# function from some tcl code.

 On Jan 31, 9:09 pm, [email protected] wrote:

 > I find myself with the need to call into C# code (on windows) from a
 > tcl script.
 > much like you can call into C with C extensions.

 > It's ok if  have to make some C/C++ glue to duct-tape it all together
 > does anybody have some advice on how i would go about doing this?
 > Or maybe a pointer at some code that already does this ?

 I'd try using tcom for this.  Create a C# class library that
 implements the  interface that you want, here is my sample one:

 using System;
 namespace ClassLibrary1
 {
    public class Class1
    {
    public Class1()   {}
    public int Double (int val)  { return val * 2 ;  }
    }

 }

 Make sure that the project has register for COM Interop set to true
 and then build it.  You should now be able to do the following:

 C:\Projects\ClassLibrary1\bin\Debug>tclsh
 % package require tcom
 3.9
 % set myCom [tcom::ref createobject "ClassLibrary1.Class1"]
 ::tcom::handle0x00923F98
 % $myCom Double 6
 12
 %

 Hope this helps

 Jackson