日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


≫ 

OpenVMS ドキュメント
ライブラリ

タイトルページ
目次
まえがき
第 1 章:一般ユーザ向けリリース・ノート
第 2 章:システム管理者向けリリース・ノート
第 3 章:プログラミングに関するリリース・ノート
第 4 章: 関連ドキュメントに関するリリース・ノート
第 5 章:日本語機能に関するリリース・ノート
付録 A :OSF/Motif リリース 1.2 リリース・ノート
付録 B :OSF/Motif サンプル・プログラム
索引
PDF
OpenVMS ホーム
日本語 HP DECwindows Motif for OpenVMS

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


目次 索引



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』を参照してください。

3.3.3 OSF/Motif リリース 1.1.3 プログラミング・サポートとXUI

V1.2--3

以下の項で, OpenVMS Alpha および OpenVMS Integrity 環境で OSF/Motif Release 1.1.3 アプリケーションをビルドする際の問題点について説明します。

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 のプログラミング環境を保管しておくことができます。

インストレーション・プロシージャは,すでにシステムに存在するプログラミング・ファイルを保管するためのオプションをユーザに提供します。これらのファイルを保管するためのオプションを選択すると,プログラミングの際にアクセスできるようそれらのファイルがサブディレクトリに移されます。つまり,インストレーションの過程で, 表 3-3 に記載された各ディレクトリに [.DECW$113]というサブディレクトリが作成され,既存のファイルがこの新しいサブディレクトリに移動されます。

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

表 3-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



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 イメージをベースにしたアプリケーションのネイティブ・ビルドの方法は以下のとおりです。

  1. OpenVMS Alpha システムで保管した以前のバージョンの OSF/Motif Release 1.1.3 環境の C ヘッダ・ファイルを使用してアプリケーション・ソース・ファイルをコンパイルします。

  2. 移植された共有イメージに対してリンクを行います。移植されたイメージの名前には,"R5" や "12" などのサフィックスはありません。たとえば Release 1.1.3 ベースのビルドでは, DECW$XTLIBSHRR5 および DECW$XMLIBSHR12 ではなく, DECW$XTSHR および DECW$XMLIBSHR に対してリンクを行います。

  3. 状況に応じて次のいずれかの処理を行います。

    • UIL の変更が必要ない場合, OpenVMS Alpha システムから OpenVMS I64 ランタイム環境へコピーした UID ファイルを使用してアプリケーションを実行してください。

    • 変更が必要な場合は, OpenVMS Alpha システムで保管した以前のバージョンの OSF/Motif Release 1.1.3 プログラミング環境の UIL コンパイラを使用し,その結果生成される UID ファイルを OpenVMS I64 ランタイム環境へコピーします。



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 を生成してください。

これらの問題の発生を回避するために,次の操作を行ってください。

  1. Release 1.1.3 のコンパイラの実行ファイル DECW$UILMOTIF.EXEの名前をDECW$UILMOTIF113.EXEに変更し, SYS$COMMONディレクトリに保存します。これで,新しい Release 1.2.2 コンパイラの名前DECW$UILMOTIF.EXEが旧バージョンのコンパイラ名と競合しなくなります。

  2. DECW$XLIBSHR.EXEファイル(Xlibリリース4)を SYS$COMMON:[SYSEXE.DECW$113] ディレクトリに移動します。
    Xlibリリース5 またはそれ以降のバージョンにも同じ名前のファイルがあります。しかし,プログラムのリンク時に,リリース4バージョンを使用するように論理名が定義されます。 DECwindows Motif V1.2 と DECwindows Motif V1.2 以降の間での DECW$XLIBSHR.EXEのマイナーidentの変更のため, Release 1.1.3 システムとの下位互換性は失われました。

  3. インストレーション時に以前のプログラミング環境を保存する場合は,次の2つのファイルを作成して, SYS$COMMON:[SYSEXE.DECW$113] ディレクトリにコピーしてください。

    • DECW$UILCOMPILER113.CLD
      このファイルは, OSF/Motif Release 1.1.3 に対して DECW$UILMOTIF113.EXE を,または XUI に対して DECW$UILCOMPILER.EXEを選択している場合に, UIL/OSF Motif および UIL/XUI が XUI あるいは OSF/Motif Release 1.1.3 のいずれかに対して機能するようにします。

    • DECW$DEFINE113_LOGICALS.COM
      このファイルは,保存されているヘッダ・ファイルをポイントし,このヘッダ・ファイルは Xlibリリース4バージョンの DECW$XLIBSHR.EXEファイルをポイントします。

  4. 必ず,リンク元のバージョンと同じバージョン(以降)のオペレーティング・システムでアプリケーションを実行します。たとえば,VMS Version 7.3-2システム上でリンクされているアプリケーションは, VMSバージョン7.3-2 (以降)のシステムで実行しなければなりません。



3.3.4 カスケードおよびトグル・ボタンにおけるメモリ・リークの解決 (Alpha のみ)

V1.5

DECwindows Motif for OpenVMS Version 1.2--4 以上のシステムでカスケードあるいはトグル・ボタンを作成し,そのあと消滅した場合,使用されていないグラフィックス・コンテキスト・オブジェクトが後に残ります。これらのオブジェクトは,クライアントおよびサーバの両方のメモリ・リークの結果発生するもので,クライアントが終了するまで存続します。

この問題は,あるグラフィックス・コンテキストについては normal 状態でウィジェットが関与し,別のグラフィックス・コンテキストについては armed 状態でウィジェットが関与する場合に発生します。通常の使用環境では,ほとんどのウィジェットは同じカラーを共有するため,一組のグラフィック・コンテキストを共有します。メモリ・リークは,異なる背景色あるいは選択テキストで多くのウィジェットが作成され消滅した場合に,多く発生します。

この問題は DECwindows Motif for OpenVMS Version 1.5 で解決されています。

3.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 で修正されています。

3.3.6 Motifヘッダ・ファイルでのコンパイル時の非互換性

V1.2--3

OSF/Motifプログラミング・サポートで Motifヘッダ・ファイルからマクロ定義がいくつか削除されています。この変更は次のヘッダ・ファイルに影響します。

  • DECW$INCLUDE:XMP.H
    次の定義が削除されています。

    • #define XmLONGBITS sizeof(Cardinal)*8

    • #define XmHALFLONGBITS (XmLONGBITS/2)


    上記マクロに代えて,次のマクロが同じヘッダ・ファイルに挿入されています。

    • XmOFFSETBITS


    XmOFFSETBITSマクロを呼び出すコードを更新してください。

  • DECW$INCLUDE:TEXTP.H
    次の定義が削除されています。

    • #define MAXINT 2147483647
      /* Biggest number that can fit in long */

    • #define NODELTA MAXINT


    MAXINTの定義はオペレーティング・システムに依存します。次のいずれかの方法でアプリケーションにこの定義を組み込んでください。

    • 該当するシステム・ヘッダ・ファイルの include

    • 定数の定義



3.3.7 _Xm ルーチンの使用

V1.2

OSF/Motif ツールキットは,多くの「内部専用」ルーチンで実現されています。これらのルーチンは_Xmで始まり,標準Motif ウィジェットだけが使用するようになっています。 API (Application Programing Interface)については文書化されておらず, OSFではこれらのルーチンをサポートしていません。 OSF社はAPIを変更して新しい_Xm ルーチンを追加し,現在の_Xm ルーチンを削除し,あらゆる_Xm の機能性の変更を警告や予告なしに行う権利を保有しています。

警告

弊社では,_Xm ルーチンを複写して, OSF/Motif リリース 1.2.2 ツールキットの共有可能イメージ転送ベクトルに置くことによって, _Xm ルーチンへアクセスできるようにしています。弊社では,これらのルーチンについて,その使用,ドキュメント,またはサポートを保証していません。これらの機能を使用するユーザは,ご自分の責任で行ってください。



V1.2

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) を使用してクラスタ上のファイルを含むディスクをマウントします。

3.3.9 Motif テキスト・ウィジェットの変換

V1.0

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

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

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

3.3.10 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の影響は受けないことに注意してください。


目次 索引

© 2010 Hewlett-Packard Development Company, L.P.