D 2014-06-17T16:40:42.340 L Documentation N text/x-markdown P 75ea53a7c199dcb325993054472d455010743be6 U rkeene W 1869 Manual Page =========== `package require tcc4tcl` tcc4tcl::cproc -------------- Creates a Tcl procedure that calls C code. Synopsis: 1. `tcc4tcl::cproc ` 1. `` is the name of the Tcl procedure to create 1. `` is a list of arguments and their types for the C function; 1. The list is in the format of: type1 name1 type2 name2 ... typeN nameN 1. The supported types are: 1. Tcl_Interp*: Must be first argument, will be the interpreter and the user will not need to pass this parameter 1. int 1. long 1. float 1. double 1. char* 1. Tcl_Obj*: Passes the Tcl object in unchanged 1. void* 1. `` is the return type for the C function 1. The supported types are: 1. void: No return value 1. ok: Return TCL\_OK or TCL_ERROR 1. int 1. long 1. float 1. double 1. char*: TCL_STATIC string (immutable from C) 1. string, dstring: TCL_DYNAMIC string (mutable from C) 1. vstring: TCL_VOLATILE string (mutable from C) 1. default: Tcl_Obj*, a Tcl Object 1. `` is the C code that comprises the function Examples: 1. Create a Tcl procedure called "add" which accepts 2 integers (a, b) and returns a long: 1. `tcc4tcl::cproc add {int a int b} long { return(a+b); }` 2. Create a Tcl procedure called "mkdir" which accepts a Tcl_Obj* and returns a return code: 1. `tcc4tcl::cproc mkdir {Tcl_Interp* interp char* dir} ok { int mkdir_ret; mkdir_ret = mkdir(dir); if (mkdir_ret != 0) { Tcl_SetObjResult(interp, Tcl_NewStringObj("failed", -1)); return(TCL_ERROR); }; return(TCL_OK); }` tcc4tcl::ccode -------------- tcc4tcl::cdata -------------- Z 4ef74410ab941d3c0f430674154abb0f