InitStubs.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
- '"
- '" Copyright (c) 1998-1999 Scriptics Corporation
- '"
- '" See the file "license.terms" for information on usage and redistribution
- '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- '"
- '" RCS: @(#) $Id: InitStubs.3,v 1.8 2002/07/01 18:24:39 jenglish Exp $
- '"
- .so man.macros
- .TH Tcl_InitStubs 3 8.1 Tcl "Tcl Library Procedures"
- .BS
- .SH NAME
- Tcl_InitStubs - initialize the Tcl stubs mechanism
- .SH SYNOPSIS
- .nf
- fB#include <tcl.h>fR
- .sp
- CONST char *
- fBTcl_InitStubsfR(fIinterp, version, exactfR)
- .SH ARGUMENTS
- .AS Tcl_Interp *interp in
- .AP Tcl_Interp *interp in
- Tcl interpreter handle.
- .AP "CONST char" *version in
- A version string consisting of one or more decimal numbers
- separated by dots.
- .AP int exact in
- Non-zero means that only the particular version specified by
- fIversionfR is acceptable.
- Zero means that versions newer than fIversionfR are also
- acceptable as long as they have the same major version number
- as fIversionfR.
- .BE
- .SH INTRODUCTION
- .PP
- The Tcl stubs mechanism defines a way to dynamically bind
- extensions to a particular Tcl implementation at run time.
- This provides two significant benefits to Tcl users:
- .IP 1) 5
- Extensions that use the stubs mechanism can be loaded into
- multiple versions of Tcl without being recompiled or
- relinked.
- .IP 2) 5
- Extensions that use the stubs mechanism can be dynamically
- loaded into statically-linked Tcl applications.
- .PP
- The stubs mechanism accomplishes this by exporting function tables
- that define an interface to the Tcl API. The extension then accesses
- the Tcl API through offsets into the function table, so there are no
- direct references to any of the Tcl library's symbols. This
- redirection is transparent to the extension, so an extension writer
- can continue to use all public Tcl functions as documented.
- .PP
- The stubs mechanism requires no changes to applications incorporating
- Tcl interpreters. Only developers creating C-based Tcl extensions
- need to take steps to use the stubs mechanism with their extensions.
- .PP
- Enabling the stubs mechanism for an extension requires the following
- steps:
- .IP 1) 5
- Call fBTcl_InitStubsfR in the extension before calling any other
- Tcl functions.
- .IP 2) 5
- Define the USE_TCL_STUBS symbol. Typically, you would include the
- -DUSE_TCL_STUBS flag when compiling the extension.
- .IP 3) 5
- Link the extension with the Tcl stubs library instead of the standard
- Tcl library. On Unix platforms, the library name is
- fIlibtclstub8.1.afR; on Windows platforms, the library name is
- fItclstub81.libfR.
- .PP
- If the extension also requires the Tk API, it must also call
- fBTk_InitStubsfR to initialize the Tk stubs interface and link
- with the Tk stubs libraries. See the fBTk_InitStubsfR page for
- more information.
- .SH DESCRIPTION
- fBTcl_InitStubsfR attempts to initialize the stub table pointers
- and ensure that the correct version of Tcl is loaded. In addition
- to an interpreter handle, it accepts as arguments a version number
- and a Boolean flag indicating whether the extension requires
- an exact version match or not. If fIexactfR is 0, then the
- extension is indicating that newer versions of Tcl are acceptable
- as long as they have the same major version number as fIversionfR;
- non-zero means that only the specified fIversionfR is acceptable.
- fBTcl_InitStubsfR returns a string containing the actual version
- of Tcl satisfying the request, or NULL if the Tcl version is not
- acceptable, does not support stubs, or any other error condition occurred.
- .SH "SEE ALSO"
- Tk_InitStubs
- .SH KEYWORDS
- stubs