## Tcl8.6.17/Tk8.6.17 Documentation > Tcl C API > AppInit

### 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_AppInit — 応用譜限定の初期化の遂行 perform application-specific initialization
  SYNOPSIS
    #include <tcl.h>
    int
    Tcl_AppInit(interp)
  引数 ARGUMENTS
    Tcl_Interp *interp (入力in)
  説明 DESCRIPTION
  SEE ALSO
  KEYWORDS

### NAME

Tcl_AppInit — 応用譜限定の初期化の遂行 perform application-specific initialization

### SYNOPSIS

#include <tcl.h>
int
Tcl_AppInit(interp)

### 引数 ARGUMENTS

Tcl_Interp *interp (入力in)
  応用譜の為の解釈実行機能｡ Interpreter for the application.

### 説明 DESCRIPTION

Tcl_AppInit は tclsh や wish のようなTcl 応用譜の為に主算譜により起動される “連結用” 手続函数である｡その目的はTcl と Tk の一部分として供給された主算譜を変更することなく新しい Tcl 応用譜を作成することを許容する為である｡新しい応用譜を作成する為に､使用者は新しい版の Tcl_AppInit を Tcl によって供給された省略時設定の版に置き換え､次に Tcl 外部函数群と共に新しい Tcl_AppInit を連結すればよい｡ Tcl_AppInit is a “hook” procedure that is invoked by the main programs for Tcl applications such as tclsh and wish. Its purpose is to allow new Tcl applications to be created without modifying the main programs provided as part of Tcl and Tk. To create a new application you write a new version of Tcl_AppInit to replace the default version provided by Tcl, then link your new Tcl_AppInit with the Tcl library.

Tcl_AppInit は､それ自身の初期化の後､且つ処理命令の主繰返しに入る前に Tcl_Main と Tk_Main により起動される｡これは Tcl_AppInit が行うべきことの幾つかの例である: Tcl_AppInit is invoked by Tcl_Main and Tk_Main after their own initialization and before entering the main loop to process commands. Here are some examples of things that Tcl_AppInit might do:

1. 応用譜に使われている種々の梱包の為の初期化手続函数を呼ぶ｡それぞれの初期化手続函数は､その梱包の為に解釈実行機能に新しい命令を追加し､他の梱包に固有の初期化を遂行する｡ Call initialization procedures for various packages used by the application. Each initialization procedure adds new commands to interp for its package and performs other package-specific initialization.

2. 黒窓内の命令行の引数を処理する､それは解釈実行機能interp内の Tcl 変数 argv と argv0 から利用できる｡ Process command-line arguments, which can be accessed from the Tcl variables argv and argv0 in interp.

3. 応用譜を初期化するための開始記述譜を起動する｡ Invoke a startup script to initialize the application.

4. 活性な Tcl_Main か Tk_Main 機能譜が開始記述譜として使われることになるファイルと符号系を設定又は問合せする為に機能譜 Tcl_SetStartupScript と Tcl_GetStartupScript を使う｡ Use the routines Tcl_SetStartupScript and Tcl_GetStartupScript to set or query the file and encoding that the active Tcl_Main or Tk_Main routine will use as a startup script.

Tcl_AppInit は TCL_OK か TCL_ERROR を返す｡もし TCL_ERROR を返す場合､解釈実行機能の結果内に不具合伝言文を残さねばならない; それ以外の場合結果は無視される｡ Tcl_AppInit returns TCL_OK or TCL_ERROR. If it returns TCL_ERROR then it must leave an error message in for the interpreter's result; otherwise the result is ignored.

応用譜は Tcl_AppInit に加えて､次の様に Tcl_Main を呼ぶ main 手続函数を含むべきである: In addition to Tcl_AppInit, your application should also contain a procedure main that calls Tcl_Main as follows:

    Tcl_Main(argc, argv, Tcl_AppInit);

Tcl_Main への第３引数は､起動すべき応用譜に特異的な初期化手続函数の番地を与える｡この意味は､手続函数には Tcl_AppInit の名前を使うべきではない､但し､実務上は名前は常に Tcl_AppInit に近い(Tcl 7.4 版以前は Tcl_AppInit の名前は暗黙のものであった; 手続を明示的に指定する方法はなかった )｡最善の取り掛かり方法は Tcl 外部函数群又は源ディレクトリーから tclAppInit.c ファイルの複製を作ることである｡それは既に､main 手続函数を含み､且つ使用者の応用譜の為に利用できる Tcl_AppInit の見本を含んでいる｡ The third argument to Tcl_Main gives the address of the application-specific initialization procedure to invoke. This means that you do not have to use the name Tcl_AppInit for the procedure, but in practice the name is nearly always Tcl_AppInit (in versions before Tcl 7.4 the name Tcl_AppInit was implicit; there was no way to specify the procedure explicitly). The best way to get started is to make a copy of the file tclAppInit.c from the Tcl library or source directory. It already contains a main procedure and a template for Tcl_AppInit that you can modify for your application.

### SEE ALSO

Tcl_Main

### KEYWORDS

application, argument, command, initialization, interpreter
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.