HP OpenVMS Systems Documentation |
| 前へ | 次へ | 目次 | 索引 |
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)とリンクします。
4.3.2 呼び出し可能 OSF/Motif UIL コンパイラ
OSF/Motif リリース 1.2.2 Toolkit には,呼び出し可能 UIL (User Interface Language) コンパイラが含まれています。現在では,リンク・オプションに次の1 行を含めると,このイメージに対してリンクすることができます。
SYS$SHARE:DECW$UILSHR/SHARE |
呼び出し可能インタフェースについての詳細は, Prentice Hall から出版されている『OSF/Motif Programmer's Guide』を参照してください。
4.3.3 OSF/Motif リリース 1.1.3 プログラミング・サポートとXUI
以下の項で, OpenVMS Alpha および OpenVMS I64 環境で OSF/Motif Release 1.1.3 アプリケーションをビルドする際の問題点について説明します。
4.3.3.1 OpenVMS Alpha 環境における Release 1.1.3 アプリケーションのビルド (Alpha のみ)
V1.2
DECwindows Motif Versions 1.2 以降で提供される X Window と OSF/Motif ライブラリは,以前のバージョンで提供されていたものとは互換性がありません。ランタイムの互換性は維持されていますが,プログラミング環境には下位互換性がありません。このため, DECwindows Motif の旧バージョンで提供されていた XUIあるいはMotif リリース 1.1.3のプログラミング環境は, DECwindows Motif Versions 1.2以降ではサポートされません。
Motif Release 1.1.3 でビルドされた古いアプリケーションがある場合は, DECwindows Motif のインストレーション時に Release 1.1.3 のプログラミング環境を保管しておくことができます。
インストレーション・プロシージャは,すでにシステムに存在するプログラミング・ファイルを保管するためのオプションをユーザに提供します。これらのファイルを保管するためのオプションを選択すると,プログラミングの際にアクセスできるようそれらのファイルがサブディレクトリに移されます。つまり,インストレーションの過程で, 表 4-3 に記載された各ディレクトリに [.DECW$113]というサブディレクトリが作成され,既存のファイルがこの新しいサブディレクトリに移動されます。
既存のプログラミング・ファイルの保管についての詳細は,『日本語 DECwindows Motif for OpenVMS インストレーション・ガイド』を参照してください。
| ディレクトリ | 内容 | 新しい位置 |
|---|---|---|
| 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]サブディレクトリを各論理名の検索パスに含めます。次の例を参照してください。
$ 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 コンパイラを使用するには,次のようにします。
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 |
$ SET COMMAND SYS$SYSROOT:[SYSEXE.DECW$113]DECW$UILCOMPILER.CLD |
UIL コマンドの定義を前の状態に戻すには,次のコマンドを実行します。
|
V1.5
DECwindows Motif for OpenVMS Version 1.5 にはアップデートされた OSF/Motif Release 1.1.3 共有ライブラリ一式が含まれていますが, OpenVMS I64 プラットフォームでは Release 1.1.3 ベースの UIL コンパイラあるいは関連する C ヘッダ・ファイル一式は含まれていません (これはDECwindows Motif for OpenVMS Alpha の最近のリリースと同様です)。
OpenVMS I64 環境の Release 1.1.3 イメージをベースにしたアプリケーションのネイティブ・ビルドの方法は以下のとおりです。
4.3.3.3 Motif Release 1.1.3 コンパイルおよびランタイムに関する制限事項
V1.2--3
以前のプログラミング環境 (Release 1.1.3) を保存した上で, Motif Release 1.1.3 ターゲット・システム上の実行ファイルから, DECwindows Motif Version 1.2 が動作しているシステム上で作成した OSF/Motif Release 1.1.3 (Xlib Release 4) アプリケーションを実行しようとすると,問題が発生します。これは,DECwindows Motif V1.2 以降が動作しているシステム上でアプリケーションを作成すると,省略時の設定によりイメージはXlib Release 5 にリンクされるためです。 OSF/Motif Release 1.1.3 がインストールされているシステムでこの実行ファイルを実行しようとすると, ident ミスマッチの fatal エラーとなります。
また,OSF/Motif Release 1.1.3 の UIL コンパイラと Release 1.2.2 の UIL コンパイラでは異なる出力を生成します。それぞれ構造が異なるため,互換性はありません。適切な UIL コンパイラを使用して正しい UID を生成してください。
これらの問題の発生を回避するために,次の操作を行ってください。
4.3.4 カスケードおよびトグル・ボタンにおけるメモリ・リークの解決 (Alpha のみ)
V1.5
DECwindows Motif for OpenVMS Version 1.2--4 以上のシステムでカスケードあるいはトグル・ボタンを作成し,そのあと消滅した場合,使用されていないグラフィックス・コンテキスト・オブジェクトが後に残ります。これらのオブジェクトは,クライアントおよびサーバの両方のメモリ・リークの結果発生するもので,クライアントが終了するまで存続します。
この問題は,あるグラフィックス・コンテキストについては normal 状態でウィジェットが関与し,別のグラフィックス・コンテキストについては armed 状態でウィジェットが関与する場合に発生します。通常の使用環境では,ほとんどのウィジェットは同じカラーを共有するため,一組のグラフィック・コンテキストを共有します。メモリ・リークは,異なる背景色あるいは選択テキストで多くのウィジェットが作成され消滅した場合に,多く発生します。
この問題は DECwindows Motif for OpenVMS Version 1.5 で解決されています。
4.3.5 Bulletin Board におけるメモリ・リークの解決 (Alpha のみ)
V1.5
DECwindows Motif for OpenVMS Version 1.2--4 以上のシステムでは, BulletinBoard ウィジェットが作成され, XmNbuttonFontList,XmNlabelFontList,あるいは XmNtextFontList リソースに対してデフォルトのフォント・リストが使用された場合,そのフォント・リスト・エントリに対する参照カウントが間違ってキャッシュされていました。これは,そのフォント・リストが必要なくなった場合に,そのフォント・リストに使用されたメモリを解放するのを妨げる原因となります。
この問題は,デフォルトのフォント・リストがその後変更された他の bulletin board あるいはベンダーのシェル・ウィジェットの子孫として, bulletin board が作成された場合に発生します。
この問題は, DECwindows Motif for OpenVMS Version 1.5 で修正されています。
4.3.6 Motifヘッダ・ファイルでのコンパイル時の非互換性
V1.2--3
OSF/Motifプログラミング・サポートで Motifヘッダ・ファイルからマクロ定義がいくつか削除されています。この変更は次のヘッダ・ファイルに影響します。
上記マクロに代えて,次のマクロが同じヘッダ・ファイルに挿入されています。
MAXINTの定義はオペレーティング・システムに依存します。次のいずれかの方法でアプリケーションにこの定義を組み込んでください。
OSF/Motif ツールキットは,多くの「内部専用」ルーチンで実現されています。これらのルーチンは_Xmで始まり,標準Motif ウィジェットだけが使用するようになっています。 API (Application Programing Interface)については文書化されておらず, OSFではこれらのルーチンをサポートしていません。 OSF社はAPIを変更して新しい_Xm ルーチンを追加し,現在の_Xm ルーチンを削除し,あらゆる_Xm の機能性の変更を警告や予告なしに行う権利を保有しています。
弊社では,_Xm ルーチンを複写して, OSF/Motif リリース 1.2.2 ツールキットの共有可能イメージ転送ベクトルに置くことによって, _Xm ルーチンへアクセスできるようにしています。弊社では,これらのルーチンについて,その使用,ドキュメント,またはサポートを保証していません。これらの機能を使用するユーザは,ご自分の責任で行ってください。 |
Motif のサンプル・プログラムが使用する UID ファイルは,現在のディレクトリ,DECW$SYSTEM_DEFAULTS,またはユーザのDECW$USER_DEFAULTS ディレクトリに入れておかなければなりません。 DECwindows Motif は, DECNET (DECnet あるいは DECnet-Plus) トランスポートによるリモート UID のアクセスはサポートしていません。このため,デフォルト・ディレクトリはノード名指定をサポートしません。 UID ディレクトリ指定でノード名を入力するとアプリケーションの起動に失敗し,次のようなエラーが表示されます。
X Toolkit Warning: I18NOpenFile: Could not open file decburger.uid - MrmNOT_FOUND can't open hierarchy |
UID ファイルは DECW$EXAMPLES ディレクトリからコピーできます。リモート UID ファイルにアクセスするには,クラスタのローカル・ノードへファイルをコピーするか,Distributed File System (DFS) を使用してクラスタ上のファイルを含むディスクをマウントします。
4.3.9 Motif テキスト・ウィジェットの変換
仮想バインディングを実現するには,弊社が省略時のXmText および XmTextField の変換マネージャ構文を変更する必要がありました。特に,次の設定が削除されています。
Shift ~Ctrl ~Meta ~Alt <Key>osfDelete: cut-clipboard() |
osfCut仮想keysymがバインドされていない仮想バインディングを使用すると,省略時の設定で,cut-clipboard 動作のキー・シーケンスはバインドされません。この制約に対処するには, DECW$XDEFAULTS.DATファイルでXmTextおよびXmTextField のトランスレーションをオーバーライドしてください。
4.3.10 Motif ウィジェットと XUI ウィジェットの混合に関する制約
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の影響は受けないことに注意してください。
| 前へ | 次へ | 目次 | 索引 |