// Define a command function in C style int aCommand( ClientData data, Tcl_Interp* interp, int args, char* argv[]) { some_type* x = (some_type*) data; // conversion by cast // some processing } // Declare the function aCommand as a Tcl command // for example in the main function some_type* user = new some_type(); // to create the client data Tcl_CreateCommand( interp, "aco", aCommand, (ClientData) user );