[コード・ジェネレータ] ウィンドウで [コードの生成] をクリックするか、コマンド行から dtcodegen を実行して展開したインタフェースのコードを生成すると、プロジェクト・フォルダに多数のファイルが生成されます。たとえば、プロジェクトが「test」という名前で、「mod1」という名のモジュールを 1 つ持っている場合、次のファイルが作成されます。
Makefile (他のプラットフォームの Makefile を含む)
dtb_utils.c
dtb_utils.h
mod1.bil (モジュール・ファイル)
mod1_stubs.c
mod1_ui.c
mod1_ui.h
test.bip (プロジェクト・ファイル)
test.c
test.h
Test (リソース・ファイル)
接続エディタで、[関数呼び出し] または [実行コード] 接続を行なった場合、これらの接続は生成されたコードに反映されます。ユーザによる変更が可能な生成コードのすべての領域は、次のような形式のコメント行でマークされています。
/* DTB_USER_CODE_START */ /* DTB_USER_CODE_END */
START および END 間の領域は、「ユーザ・セグメント」と見なされます。任意のテキスト (C 以外のコードであっても) をユーザ・セグメント内に追加できます。コード・ジェネレータは、このコードを次期以降の全バージョンにおいて保持します。各ユーザ・セグメントは、そのセグメントに追加すべきコードのタイプ、またはそのセグメントの実行時におけるアプリケーションの状態を促すコメントで開始されます。この提示は、純粋に情報を提供しているだけで、無視される場合があります。
アプリケーション・ビルダもコード・ジェネレータも、ユーザが追加するコードが正当な C コードであるか確認しません。変更したファイルがコンパイラで正常に処理できるかどうかはユーザの責任です。
手作業で編集したコードをすべて破棄する場合は、コード・ジェネレータ・ウィンドウの [オプション] ダイアログから [マージ禁止] を明示的に選択するか、dtcodegen を -nomerge オプション付きで実行する必要があります。これは、大量の作業が失われる可能性があるので、慎重に実行してください。
どのような環境下でも、生成されたコメントを変更しないでください。変更した場合、コード生成に失敗し、その結果のファイルはコンパイルできない可能性があります。このような状態からの復旧を補助するために、拡張子 .BAK を持つバックアップ・ファイルが現在のディレクトリに格納されます。
ユーザ・コードは機能ごとに分けて作られるので、ユーザは生成されたアプリケーションを簡単にカスタマイズできます。main() に関連するすべてのコードと、アプリケーション全体のデータおよび構造体が、projectname>.h と <projectname>.c に定義されます。これらのファイルでは、アプリケーションの Xt リソースのデータ構造にフィールドが追加され、開発者が定義した新規のデータ型および変数が追加され、アプリケーションの起動プロシージャが修正されます。
各 <modulename>_stubs.c ファイルには、生成された接続の効果を変更するためのユーザ・セグメントがあります。ユーザのコードは、自動生成されたコードの実行前と後の両方に追加されることがあります。
さらに、各ファイルの最上部には、カスタム・ヘッダまたは著作権表示を追加するのに使用できるユーザ・セグメントがあります。