Tk_InitStubs - initialize the Tk stubs mechanism


       #include <tk.h>

       char *
       Tk_InitStubs(interp, version, exact)


       Tcl_Interp   *interp   (in)      Tcl interpreter handle.

       char         *version  (in)      A version string consist­
                                        ing of one or more  deci­
                                        mal  numbers separated by

       int          exact     (in)      Non-zero means that  only
                                        the particular Tk version
                                        specified by  version  is
                                        acceptable.   Zero  means
                                        that versions newer  than
                                        version  are also accept­
                                        able as long as they have
                                        the  same  major  version
                                        number as version.


       The Tcl stubs mechanism defines a way to dynamically  bind
       extensions to a particular Tcl implementation at run time.
       the stubs mechanism requires no  changes  to  applications
       incoporating  Tcl/Tk interpreters.  Only developers creat­
       ing C-based Tcl/Tk extensions need to take  steps  to  use
       the  stubs  mechanism  with  their  extensions.   See  the
       Tcl_InitStubs page for more information.

       Enabling  the  stubs  mechanism  for  a  Tcl/Tk  extension
       requires the following steps:

       1)   Call  Tcl_InitStubs  in  the extension before calling
            any other Tcl functions.

       2)   Call Tk_InitStubs if the extension before calling any
            other Tk functions.

       2)   Define  the  USE_TCL_STUBS  symbol.   Typically,  you
            would include the -DUSE_TCL_STUBS flag when compiling
            the extension.

       3)   Link   the  extension  with  the  Tcl  and  Tk  stubs
            libtclstub8.1.a and libtkstub8.1.a; on Windows  plat­
            forms,   the  library  names  are  tclstub81.lib  and


       Tk_InitStubs attempts to  initialize  the  Tk  stub  table
       pointers  and  ensure  that  the  correct version of Tk is
       loaded.  In addition to an interpreter handle, it  accepts
       as  arguments a version number and a Boolean flag indicat­
       ing whether the extension requires an exact version  match
       or  not.   If exact is 0, then the extension is indicating
       that newer versions of Tk are acceptable as long  as  they
       have  the  same  major version number as version; non-zero
       means that  only  the  specified  version  is  acceptable.
       Tcl_InitStubs  returns a string containing the actual ver­
       sion of Tk satisfying the request, or NULL if the Tk  ver­
       sion is not acceptable, does not support the stubs mechan­
       sim, or any other error condition occurred.