# 日本語 Compaq DECwindows Motif for OpenVMS
リリース・ノート

前へ | 次へ | 目次 | 索引

# 付録 B
OSF/Motif ツールキットに関する情報

この付録では，OSF/Motif ツールキットに関連する注意事項，制限事項，修正点について説明します。

# B.1 OSF/Motif リリース 1.2.2 と X11 R5 の共有可能ライブラリ

V1.2

OSF/Motif リリース 1.2.2 ツールキットと OSF/Motif リリース 1.1.3 ツールキットの間にはバイナリ互換性がありません。アプリケーションはどちらか別々のツールキットでリンクする必要があります。 OSF/Motif リリース 1.2.2のアプリケーションのリンクには， OSF/Motif 1.2.2 および X11 R5 をベースとする共有可能ライブラリしか使用できません。また，OSF/Motif リリース 1.1.3のアプリケーションのリンクには， OSF/Motif 1.1.3 および X11 R4 をベースにする共有可能ライブラリしか使用できません。

OSF/Motif リリース 1.2.2 をベースにする共有ライブラリと OSF/Motif リリース1.1.3 をベースにする共有可能ライブラリの両方のライブラリを提供するために，リリース 1.1.3をベースにするライブラリには DECwindows Motif バージョン 1.1と同じファイル名が，リリース1.2.2をベースにするライブラリには後ろに "R5"または "12"の付くファイル名が使用されています。

OSF/Motif リリース 1.1.3ツールキットまたは OSF/Motif リリース 1.2.2 ツールキットとともに使用される共有可能ライブラリのファイル名には，接尾辞は付きません。このようなライブラリには，次のものがあります。

V1.2--6

- CDA$ACCESS.EXE
- DECW$D2DXLIBSHR.EXE
- DECW$XEXTLIBSHR.EXE
- DECW$XLIBSHR.EXE
- XIE$SHRLIB.EXE

Xt ツールキットリリース 5 (R5)とリンクされた共有可能ライブラリには， "R5"の接尾辞が付きます。 XUI ツールキットをベースにするライブラリには R5 に相当するライブラリがなく， X11 R5 または OSF/Motif リリース 1.2.2 をベースにしたリンカ・オプション・ファイルに含めることはできません。これらのファイル名については 表 B-1 を参照してください。

注意 DECW$XLIBSHR.EXE ファイルは Xlib の MIT リリース 5 バージョンであり， MIT リリース 4 バージョンの Xlib ではありません。

表 B-1 R5をベースにする共有可能ライブラリの名称
R4 準拠ファイル名 | R5 準拠ファイル名
--- | ---
DECW$DWTLIBSHR.EXE | (なし)
DECW$DWTSHR.EXE | (なし)
DECW$XMULIBSHR.EXE | DECW$XMULIBSHRR5.EXE
DECW$XTRAPLIBSHR.EXE | DECW$XTRAPLIBSHRR5.EXE
DECW$XTSHR.EXE | DECW$XTLIBSHRR5.EXE

リリース 5 では DECW$DWTLIBSHR.EXE または DECW$DWTSHR.EXEに相当するファイルは用意されていません。リリース 5 用に作成されたアプリケーションは，これらのファイルとリンクすることはできません。

OSF/Motif リリース 1.2.2 とリンクされた共有可能ライブラリには， "12"の接尾辞が付きます。これらのファイルは R5 および OSF/Motif リリース 1.2.2 と互換性のあるライブラリだけにリンクされる必要があります。これらのファイル名については， 表 B-2 の一覧を参照してください。

表 B-2 OSF/Motif リリース 1.2.2準拠の共有可能ライブラリ名
リリース 1.1.3準拠ファイル名 | リリース 1.2.2準拠ファイル名
--- | ---
DDIF$VIEWSHR.EXE | DDIF$VIEWSHR12.EXE
DECW$BKRSHR.EXE | DECW$BKRSHR12.EXE
DECW$DXMLIBSHR.EXE | DECW$DXMLIBSHR12.EXE
DECW$MAILSHR.EXE | DECW$MAILSHR12.EXE
(なし) | DECW$MRMLIBSHR12.EXE
DECW$PRINTWGTSHR.EXE | (なし)
DECW$TERMINALSHR.EXE | DECW$TERMINALSHR12.EXE
DECW$XMLIBSHR.EXE | DECW$XMLIBSHR12.EXE
DGIT$LIBSHR.EXE | DGIT$LIBSHR12.EXE
IMG$SHRLIB.EXE | IMG$SHRLIB12.EXE
LWK$DXMSHR.EXE | LWK$DXMSHR12.EXE
XNL$SHR.EXE | XNL$SHR12.EXE

DECW$PRINTWGTSHR12.EXE ファイルはありません。プリント・ウィジェットは DECW$DXMLIBSHR12.EXE ファイルの一部です。

DECW$MRMLIBSHR12.EXE ファイルは，以前にはDECW$XMLIBSHR.EXEの一部であった Motif Resource Manager (Mrm)ルーチンを含む新しいイメージです。 OSF/Motif リリース 1.2.2 をベースにして， .UIDファイルにアクセスするために Mrmルーチンを呼び出すプログラムはすべて，このライブラリとリンクする必要があります。

たとえば，OSF/Motifリリース 1.1.3をベースにする典型的なリンカ・オプション・ファイルは，次のようなものです。

    SYS$SHARE:DECW$XLIBSHR/SHARE
    SYS$SHARE:DECW$XTSHR/SHARE
    SYS$SHARE:DECW$DWTLIBSHR/SHARE
    SYS$SHARE:DECW$XMLIBSHR/SHARE
    SYS$SHARE:DECW$DXMLIBSHR/SHARE

このプログラムを OSF/Motif リリース 1.2.2 とリンクするには，リンカ・オプション・ファイルを次のように変更します。

    SYS$SHARE:DECW$XLIBSHR/SHARE
    SYS$SHARE:DECW$XTLIBSHRR5/SHARE
    SYS$SHARE:DECW$XMLIBSHR12/SHARE
    SYS$SHARE:DECW$MRMLIBSHR12/SHARE
    SYS$SHARE:DECW$DXMLIBSHR12/SHARE

このように変更することで，XUI ツールキット (DECW$DWTLIBSHR.EXE)を参照せず，また，Motif リソース・マネージャ(DECW$MRMLIBSHR12.EXE)とリンクします。

# B.2 OSF/Motif リリース 1.1.3 プログラミング・サポートとXUI

V1.2--3

制限事項

- 問題
  以前(リリース1.1.3)のプログラミング環境を保存したうえで， DECwindows Motif V1.1ターゲット・システム上で実行ファイルを実行して， DECwindows Motif V1.2 またはV1.2-3システムに作成されている OSF/Motifリリース1.1.3 (Xlibリリース4)プログラムを実行しようとすると問題が発生します。つまり，DECwindows Motif V1.2またはV1.2-3 for OpenVMSシステム上でアプリケーションを作成すると，省略時の設定によりイメージはXlibリリース5にリンクされます。 OSF/Motifリリース1.1.3がインストールされているシステムでこの実行ファイルを実行しようとすると，結果はidentミスマッチの致命的エラーになります。
  また，OSF/Motifリリース1.1.3とリリース1.2.2のファイルでは，異なる出力が生成されます。構造が異なり，したがって互換性はありません。該当するUILを使用して，適正なUIDファイルを生成してください。
- 解決策
  1. DECwindows Motif V1.1の実行可能コンパイラDECW$UILMOTIF.EXEの名前をDECW$UILMOTIF113.EXEに変更し， SYS$COMMONディレクトリに保存します。これで，新しいV1.2-3コンパイラの名前DECW$UILMOTIF.EXEが旧バージョンのコンパイラ名と競合しなくなります。
  2. DECW$XLIBSHR.EXEファイル(Xlibリリース4)を SYS$COMMON:[SYSEXE.DECW$113] ディレクトリに移動します。
     Xlibリリース5のバージョンにも同じ名前のファイルがあります。しかし，プログラムのリンク時にリリース4バージョンを使用するように論理名が定義されています。 DECwindows Motif V1.1とDECwindows Motif V1.2 for OpenVMSの間の DECW$XLIBSHR.EXEのマイナーidentの変更で， DECwindows Motif V1.1システムとの下位互換性は失われました。
  3. インストレーション時に以前のプログラミング環境を保存する場合は，次の2つのファイルを作成して， SYS$COMMON:[SYSEXE.DECW$113] ディレクトリにコピーしてください。
     - DECW$UILCOMPILER113.CLD
       このファイルは， DECW$UILMOTIF113.EXE for OSF/Motifリリース1.1.3または DECW$UILCOMPILER.EXE for XUIを選択している場合に， XUIまたはOSF/Motifリリース1.1.3用に， UIL/OSF Motif および UIL/XUI を使用できるようにします。
     - DECW$DEFINE113_LOGICALS.COM
       このファイルは，保存されているヘッダ・ファイルをポイントし，このヘッダ・ファイルが，次にXlibリリース4バージョンのDECW$XLIBSHR.EXEファイルをポイントします。

  4. 必ず，リンク元のバージョンと同じバージョン(以降)のオペレーティング・システムでアプリケーションを実行します。たとえば，VMS Version 5.4-3システム上でリンクされているアプリケーションは， VMSバージョン5.4-3 (以降)のシステムで実行します。
     OpenVMSバージョン6.1システム用にコンパイルした DECwindows Motif V1.1アプリケーションは， OpenVMSバージョン6.1システムでしか実行することができません。バージョン6.1より前のシステムでは実行できません。

V1.2

日本語 DECwindows Motif for OpenVMS V1.2 ソフトウェアに付いてくる X ウィンドウと OSF/Motif ライブラリは，以前のバージョンで配布されたものとは互換性がありません。ランタイムの互換性は維持されていますが，プログラミング環境には互換性はありません。

DECwindows Motifの旧バージョンで提供されていた XUIあるいはMotif リリース 1.1.3のプログラミング環境は，日本語 DECwindows Motif for OpenVMS V1.2 ではサポートされていません。しかし，インストレーションの際にすでに使用しているシステムに入っているプログラミング・ファイルを保管するオプションがあります。既存のプログラミング・ファイルの保管を選択する場合，これらのファイルはサブディレクトリに移され，プログラミングを行う際にアクセスすることができます。具体的にいうと，インストレーションの過程で， 表 B-3 の表に記載された各ディレクトリに [.DECW$113]というサブディレクトリが作成されて，既存のファイルをこの新しいサブディレクトリに移動します。

既存のプログラミング・ファイルの保管についての詳細は，『日本語 DECwindows Motif for OpenVMS インストレーション・ガイド』を参照してください。

表 B-3 XUI，Motif 旧バージョンのプログラミング環境用ディレクトリ
ディレクトリ | 内容 | 新しい位置
--- | --- | ---
DECW$INCLUDE | C ヘッダ・ファイル | SYS$SYSROOT:[DECW$INCLUDE.DECW$113]
SYS$SYSTEM | UIL コンパイラ | SYS$SYSROOT:[SYSEXE.DECW$113]
SYS$LIBRARY | 非 C 言語バインディング | SYS$SYSROOT:[SYSLIB.DECW$113]

これらのファイルを使用してプログラミングを行うには，新しい[.DECW$113]サブディレクトリを各論理名の検索パスに含めます。次の例を参照してください。

- DECW$INCLUDE の定義を次のように変更します。

      $ SHOW LOGICAL DECW$INCLUDE
         "DECW$INCLUDE" = "SYS$SYSROOT:[DECW$INCLUDE]" (DECW$LOGICAL_NAMES)
              = "SYS$SYSROOT:[DECW$INCLUDE.EXTENSIONS]"

      $ DEFINE/EXECUTIVE/TABLE=DECW$LOGICAL_NAMES DECW$INCLUDE -
       SYS$SYSROOT:[DECW$INCLUDE.DECW$113], -
       SYS$SYSROOT:[DECW$INCLUDE], -
       SYS$SYSROOT:[DECW$INCLUDE.EXTENSIONS]

今回のリリースで更新されたファイルには， [.DECW$113]サブディレクトリに移されたファイルと同じ名前を持っているものも多くあります。したがって，まず検索リストに新しいサブディレクトリ[.DECW$113]を入れます。これによって[.DECW$113]の中のファイルをソフトウェア開発用に使用することができます。

SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COMのコマンド・プロシージャで DECW$INCLUDE が再定義された場合は，それに従って上記の指示を変更してください。

XUI または OSF/Motif リリース 1.1.3 で UIL コンパイラを使用するには，次のようにします。

1. SYS$SYSROOT:[SYSEXE.DECW$113]DECW$UILCOMPILER.CLDというファイル名で，次のテキストを含むファイルを作成します。

       define type trace_keywords
        keyword tokens
        keyword symbols

       define type warning_keywords
        keyword nowarnings
        keyword noinformationals

       define type version_keywords
        keyword V1, syntax=xui_uil
        keyword V2, syntax=xui_uil, default
        keyword MOTIF11, syntax=motif_uil

       define syntax xui_uil
        image decw$uilcompiler

       define syntax motif_uil
        image decw$uilmotif

       define verb uil
        image decw$uilcompiler
        parameter p1, label=source_file,
         prompt="File", value(required,noconcatenate,type=$infile)
        qualifier trace, label=trace_qual,
         value(list,noconcatenate,type=trace_keywords), nonnegatable
        qualifier warnings, label=warnings_qual,
         value(list,noconcatenate,type=warning_keywords)
        qualifier list, label=listing_file,
         batch, value(type=$outfile)
        qualifier machine, label=machine_qual,
        qualifier output, label=resource_file,
         default, value(type=$outfile)
        qualifier version, label=version_qual, default,
         value(type=version_keywords),
         nonnegatable
        qualifier XUI, default, nonnegatable, syntax=xui_uil
        qualifier MOTIF, nonnegatable, syntax=motif_uil

        qualifier widget_meta_description, label=widget_qual,
         value(required, noconcatenate, type=$infile)

        disallow XUI and MOTIF

2. 次のように，DCL コマンド・テーブルを XUI UIL コンパイラ用に設定します。

       $ SET COMMAND SYS$SYSROOT:[SYSEXE.DECW$113]DECW$UILCOMPILER.CLD

注意 UIL コマンドの定義を前の状態に戻すには，次のコマンドを実行します。
    $ SET COMMAND SYS$LIBRARY:DECW$UILCOMPILER.CLD

# B.3 DECwindows OSF/Motif ツールキット

この節では，DECwindows OSF/Motif ツールキットの注意，制限，チューニングなどに関する事項を説明します。

## B.3.1 呼び出し可能 OSF/Motif UIL コンパイラ (Alpha のみ)

V1.2--6

OSF/Motif リリース 1.2.2 Toolkit には，呼び出し可能 UIL (User Interface Language) コンパイラが含まれています。現在では，リンク・オプションに次の1 行を含めると，このイメージに対してリンクすることができます。

    SYS$SHARE:DECW$UILSHR/SHARE

呼び出し可能インタフェースについての詳細は， Prentice Hall から出版されている『OSF/Motif Programmer's Guide』を参照してください。

## B.3.2 Motif テキスト・ウィジェットの変換

V1.0

仮想バインディングを実現するには，弊社が省略時のXmText および XmTextField の変換マネージャ構文を変更する必要がありました。特に，次の設定が削除されています。

    Shift ~Ctrl ~Meta ~Alt <Key>osfDelete:   cut-clipboard()

osfCut仮想keysymがバインドされていない仮想バインディングを使用すると，省略時の設定で，cut-clipboard 動作のキー・シーケンスはバインドされません。この制約に対処するには， DECW$XDEFAULTS.DATファイルでXmTextおよびXmTextField のトランスレーションをオーバーライドしてください。

## B.3.3 上位互換性

V1.0

DECW$DWTLIBSHR，DECW$DWTSHR，DECW$XTSHRの各共有可能イメージの組み合わせは，以前のDECW$DWTLIBSHR共有可能イメージとの，バイナリで上位互換性があるようになっています。例外と考えられるのは， LIB$ FIND_IMAGE_SYMBOLを使用してイメージDECW$DWTLIBSHRを動的に起動するアプリケーションです。動的なイメージの起動の問題は，固有のセマンティクスが X ツールキット・イントリンシック・リリース 3 から， MIT X11 リリース 4 になるときに大幅に変わっていることです。以前リンクされたXUIアプリケーションは， X ツールキット・リリース 3 の固有のセマンティクスを使用する XUI転送ベクトルのエントリを通じて呼び出しを行います。ただし，そのアプリケーションが再リンクされる (または動的にDECW$DWTLIBSHRを起動する)とすぐに， MIT X ツールキット・イントリンシック・リリース 4 固有のセマンティクスを使用します。

動的にDECW$DWTLIBSHRを起動するアプリケーションは， DECW$DWTLIBSHRに対して直接にリンクするように変更する必要があります。 DECW$DWTLIBSHR は現在は小型薄層の共有可能イメージとなり，必要なときだけツールキットの大部分のコードを自動的に動的に起動します。このためアプリケーションがDECW$DWTLIBSHRを動的に起動し続けることはありません。

今後弊社では，ツールキット共有可能イメージを動的に起動するアプリケーションに対するバイナリで上位互換性を保証できません。 DECwindows ツールキット(XUI と Motif)は，弊社の管轄外の基準に基づいています。この基準に互換性のない変更が行われた場合は，弊社はそれに従うようツールキットを変更します。ただし，現在の実行可能イメージが変わらずに実行されるようにコードを追加していく意向です。

### B.3.3.1 Motif ウィジェットと XUI ウィジェットの混合に関する制約

V1.0

MotifウィジェットとXUIのウィジェットの混合には制限があります。問題の原因は， XUIとMotifの両方がそれぞれ独自のVendor Shell ウィジェット・クラスを持っていることにあります。アプリケーションがMotifではなくXUIに対してリンクされると， XUI Vendor Shell ウィジェット・クラスが， DECwindows XUIとの互換性を保つために使用されます。アプリケーションがMotifに対してリンクされたときは， Motif Vendor Shell ウィジェット・クラス使用されます。 Motif ウィジェットはMotif Vendor Shellを必要とし， XUI ウィジェットはMotif Vendor Shellとの互換性があります。問題が発生するのは， XUI専用アプリケーションがMotifを使用する共有可能イメージを (LIB$FIND_IMAGE_SYMBOLを使用して)動的に起動したときです。ツールキットが初期化されたときに，動的に起動された共有可能イメージでMotif ウィジェットが動かない場合は，ツールキットは XUI Vendor Shellを使用するよう決定します。

この問題に対処するには，アプリケーション・イメージ名をDECW$USE_XM_VENDOR_SHELL論理名に加える方法があります。この論理名には，ツールキットがMotif Vendor Shellを使用するイメージ名を，コンマで区切って並べてあります。 DECW$USE_XM_VENDOR_SHELL 論理名の値は省略時の設定でNOTES$MAINとなっています。さらにイメージ名をこの論理名に追加するには，次のコマンドを入力します。

    $ DEFINE DECW$USE_XM_VENDOR_SHELL "NOTES$MAIN,-
    _$ yourimage1,yourimage2,..."

Motifを使用するアプリケーションは，すでにMotif Vendor Shellを使用しているため， DECW$USE_XM_VENDOR_SHELLの影響は受けないことに注意してください。

前へ | 次へ | 目次 | 索引