## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > StaticLibrary

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_StaticLibrary, Tcl_StaticPackage — 'load'命令経由で使用できる静的外部函数を作成する make a statically linked library available via the 'load' command
  SYNOPSIS
    #include <tcl.h>
    Tcl_StaticLibrary(interp, prefix, initProc, safeInitProc)
    Tcl_StaticPackage(interp, prefix, initProc, safeInitProc)
  引数 ARGUMENTS
    Tcl_Interp *interp (i入力inn)
    const char *prefix (入力in)
    Tcl_LibraryInitProc *initProc (入力in)
    Tcl_LibraryInitProc *safeInitProc (入力in)
  説明 DESCRIPTION
  KEYWORDS
  SEE ALSO

### NAME

Tcl_StaticLibrary, Tcl_StaticPackage — 'load'命令経由で使用できる静的外部函数を作成する make a statically linked library available via the 'load' command

### SYNOPSIS

#include <tcl.h>
Tcl_StaticLibrary(interp, prefix, initProc, safeInitProc)
Tcl_StaticPackage(interp, prefix, initProc, safeInitProc)

### 引数 ARGUMENTS

Tcl_Interp *interp (i入力inn)
  もしNULLでない場合､ その中に､外部函数が既に編入された解釈実行機能を指す(即ち､呼出者は､既に適切な初期化手続き函数を起動した)｡ NULLは､外部函数は､未だどの解釈実行機能内にも編入されてない､事を表す｡ If not NULL, points to an interpreter into which the library has already been incorporated (i.e., the caller has already invoked the appropriate initialization procedure). NULL means the library has not yet been incorporated into any interpreter.

const char *prefix (入力in)
  Prefix for library initialization function. Normally in titlecase (first letter upper-case, all others lower-case), but this is no longer required.

Tcl_LibraryInitProc *initProc (入力in)
  この外部函数を信頼される解釈実行機能内に編入することを起動する手続き函数｡ Procedure to invoke to incorporate this library into a trusted interpreter.

Tcl_LibraryInitProc *safeInitProc (入力in)
  この外部函数を安全な解釈実行機能(信頼できない記述譜を遂行する)内に編入することを呼出す手続き函数｡NULLは､この外部函数は安全な解釈実行機能内では使えないことを意味する｡[訳註:??] Procedure to call to incorporate this library into a safe interpreter (one that will execute untrusted scripts). NULL means the library cannot be used in safe interpreters.

### 説明 DESCRIPTION

この手続き函数は､Tcl応用譜を伴って､外部函数が静的に連結され､且つ､ 任意追加として､既に解釈実行機能内に編入されていることを宣言する為に起動される｡ 一たびTcl_StaticLibraryが外部函数の為に起動されると､ load命令を使って解釈実行機能内に編入され得る｡ Tcl_StaticLibraryは通常､ 外部函数そのものの為にではなく､ 応用譜の為に､Tcl_AppInit手続函数によってのみ起動される (Tcl_StaticLibraryは静的に連結される外部函数の為にのみ起動されるべきで､ 外部函数内の符号命令自身は外部函数が動的に積まれたか､静的に結合されたかを知る必要はない)｡ This procedure may be invoked to announce that a library has been linked statically with a Tcl application and, optionally, that it has already been incorporated into an interpreter. Once Tcl_StaticLibrary has been invoked for a library, it may be incorporated into interpreters using the load command. Tcl_StaticLibrary is normally invoked only by the Tcl_AppInit procedure for the application, not by libraries for themselves (Tcl_StaticLibrary should only be invoked for statically linked libraries, and code in the library itself should not need to know whether the library is dynamically loaded or statically linked).

解釈実行機能内に外部函数を編入する為に後にload命令が 使われ､ 目的の解釈実行機能が安全か否かによって､ initProc と safeInitProcの内の一つが起動される｡ initProc と safeInitProc は両方共､次の原型に合致せねばならない: When the load command is used later to incorporate the library into an interpreter, one of initProc and safeInitProc will be invoked, depending on whether the target interpreter is safe or not. initProc and safeInitProc must both match the following prototype:

    typedef int Tcl_LibraryInitProc(
            Tcl_Interp *interp);

interp引数は､その中に外部函数が編入される解釈実行機能を識別する｡ 初期化手続き函数は､成功裡に完了したか否かを指し示すTCL_OK か TCL_ERRORを､必ず示さねばならない; 不都合の行事の場合､不都合伝言文を指す解釈実行機能の結果が設定されるべき｡ 初期化手続き函数からの結果又は不都合は､ 初期化手続き函数に起動された､load命令の結果として返される｡ The interp argument identifies the interpreter in which the library is to be incorporated. The initialization procedure must return TCL_OK or TCL_ERROR to indicate whether or not it completed successfully; in the event of an error it should set the interpreter's result to point to an error message. The result or error from the initialization procedure will be returned as the result of the load command that caused the initialization procedure to be invoked.

Tcl_StaticLibraryはTcl 8.6版以前はTcl_StaticPackageの名前であったが､ 旧名は廃止された｡ Tcl_StaticLibrary was named Tcl_StaticPackage in Tcl 8.6 and earlier, but the old name is deprecated now.

Tcl_StaticLibraryはスタブ可能拡張内では､使用できない｡ Tcl_StaticLibrary can not be used in stub-enabled extensions.

### KEYWORDS

initialization procedure, package, static linking

### SEE ALSO

load, package, Tcl_PkgRequire
Copyright © 1995-1996 Sun Microsystems, Inc.