D 2014-06-24T04:28:41.022 L Examples N text/x-markdown P eb5f95bb4c338d8d4298f5b482dcdcee98afafa0 U rkeene W 1483 tcc4tcl Examples ================ Simple Example -------------- #! /usr/bin/env tclsh package require tcc4tcl set handle [tcc4tcl::new] $handle cproc add {int a int b} long { return(a+b); } puts [add 1 2] Example 1: mkdir ---------------- #! /usr/bin/env tclsh package require tcc4tcl 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); } Example 2: curl --------------- #! /usr/bin/env tclsh package require tcc4tcl set handle [tcc4tcl::new] $handle ccode { #include #include } $handle cwrap curl_version {} vstring $handle cproc curl_fetch {char* url} ok { void *handle; handle = curl_easy_init(); if (!handle) { return(TCL_ERROR); } curl_easy_setopt(handle, CURLOPT_URL, url); curl_easy_perform(handle); return(TCL_OK); } $handle add_library_path /usr/lib64 $handle add_include_path /usr/include $handle add_library curl $handle go curl_fetch http://rkeene.org/ Z 84c5553075caafb75845a29823c3d8a5