public TclInterp() { unsafe { _interp = TclNative.Tcl_CreateInterp(); if (_interp == null) throw new OutOfMemoryException(); } _keepAlive = new Hashtable(); }
private unsafe int CallbackProc(Tcl_Interp *interp) { try { _proc(_interp); } catch (Exception) { return(TclNative.TCL_ERROR); } return(TclNative.TCL_OK); }
public TclInterp() { unsafe { _interp = TclNative.Tcl_CreateInterp(); if (_interp == null) { throw new OutOfMemoryException(); } } _keepAlive = new Hashtable(); }
private unsafe int CallbackProc(IntPtr clientData, Tcl_Interp *interp, int argc, char **argv) { try { string[] arr = new string[argc]; for (int i = 0; i < argc; i++) { arr[i] = Marshal.PtrToStringAnsi((IntPtr)argv[i]); } _proc(_interp, arr); } catch (Exception) { return(TclNative.TCL_ERROR); } return(TclNative.TCL_OK); }
internal static extern void Tk_MainEx(int argc, [In, MarshalAs(UnmanagedType.LPArray)] string[] argv, Tcl_AppInitProc appInitProc, Tcl_Interp *interp);
internal static extern int Tk_Init(Tcl_Interp *interp);
internal static extern IntPtr Tcl_CreateCommand(Tcl_Interp *interp, [MarshalAs(UnmanagedType.LPStr)] string cmdName, Tcl_CmdProc proc, IntPtr clientData, Tcl_CmdDeleteProc deleteProc);
internal static extern IntPtr Tcl_GetVar(Tcl_Interp *interp, [MarshalAs(UnmanagedType.LPStr)] string varName, int flags);
internal static extern int Tcl_Eval(Tcl_Interp *interp, [MarshalAs(UnmanagedType.LPStr)] string str);