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


前へ 次へ 目次 索引


4.1.9 Fortranで記述したアプリケーションのコンパイル

V1.1

OpenVMS Alpha システムで, DECW$MOTIF.FORファイルなどの DECwindows Motif アプリケーションを Fortranで作成するために使用するインクルード・ファイルには,使用するコンパイラ・スイッチに応じてメモリ・レイアウトを変化させる構造体定義が含まれています。

次の処置のいずれかを行うことができます。

4.1.10 Cで作成したアプリケーションのコンパイル

V1.0

VAX C レイヤード製品のインストレーション・プロシージャでは, VAX C 定義ファイル(.h ファイル)を抽出するか,または.h ファイルをテキスト・ライブラリに残しておくかのいずれかを選択することができます。定義ファイルを抽出すると,次のフォーマットの#include 制御行を使用することができます。


#include <filename.h> 

DECwindows ヘッダ・ファイルは, .h ファイルが抽出されていることを前提としています。ヘッダ・ファイルには,組み込まれたファイルの #include <module_name.h>記述が含まれています。また, DECwindows Motif プログラミング関連マニュアルでも同じことを前提としています。

このため,VAX C をインストールするときには,ライブラリ・モジュール抽出を選ぶ必要があります。

すでにVAX C をインストールしていて, .h ファイルを抽出しなかった場合は, DECwindowsサンプル C プログラムは動作しません。この問題に対処するには, VAX Cを再度インストールして.h ファイルを抽出してください。

DEC C では, DECC$TEXT_LIBRARYの論理名を次のように定義すれば,ヘッダ・ファイルをテキスト・ライブラリから抽出する必要はありません。


$ DEFINE DECC$TEXT_LIBRARY SYS$LIBRARY:DECC$RTLDEF.TLB 

4.2 トランスポート・プログラミング

この節では,トランスポート・インタフェースの情報について説明します。

4.2.1 ローカル・エリア・トランスポート (LAT) とユーザ作成トランスポートが V1.3 環境ではサポートされない問題

V1.3

DECwindows Motif V1.3 では, ICE (Inter-Client Exchange) プロトコル,LBX (Low-Bandwidth X) プロキシ・サーバ,および入力システム・サーバの通信要件に対応するために, DECwindows Motif トランスポート・ライブラリに重要な変更が行われました。特に,サーバ接続に番号を割り当てる代替方法 ( 『hp DECwindows Motif for hp OpenVMS Alpha New Features』 を参照) が追加されました。外部用として公開されるトランスポート関連機能は,論理接続番号 (LCN) インタフェースのサポートだけです。

DECnet,TCP/IP,およびローカル・ネットワーク・トランスポート・インタフェースはアップデートされており,バージョン 1.3 環境でも期待されているとおりに機能します。また,以前のバージョンのクライアント・ライブラリと互換性があります。ただし,ローカル・エリア・トランスポート (LAT) に対する DECwindows Motif のインタフェースは,以前のバージョンの DECwindows Motif に対して構築されたカスタマイズされたユーザ作成トランスポートと同じように,バージョン 1.3 環境では期待どおりに機能せず,サポートされません。次のファイルに対してビルドされリンクされたトランスポートがこれに該当します。

SYS$LIBRARY:DECW$XPORTCOM.H
SYS$LIBRARY:DECW$XPORTCOM.MAR
SYS$LIBRARY:DECW$XPORTCOM.R32
SYS$LIBRARY:DECW$XPORTDEF.H
SYS$LIBRARY:DECW$XPORTDEF.MAR
SYS$LIBRARY:DECW$XPORTDEF.R32
『VMS DECwindows Transport Manual』はアーカイブ化され,新しいライブラリについてはドキュメントには記述されず,公には提供されません。

LAT トランスポートへの DECwindows Motif インタフェースを利用している X 端末アプリケーションを現在ご使用の場合は, DECwindows Motif Version 1.2--6 またはそれ以前にとどまることをお勧めします。

カスタマイズしたトランスポートを実装していて,このトランスポートを DECwindows Motif V1.3 環境に移行させる場合は,移行計画の策定について弊社のカスタマ担当者にご相談ください。

4.3 X Window System ライブラリ (Xlib)

この節では,X Window System ライブラリ (Xlib) の情報について説明します。

4.3.1 廃止されたエントリ・ポイントと変更されたエントリ・ポイント

V1.3

次のサポートされない Xlib エントリ・ポイントは, DECW$XLIBSHR イメージから削除されました。

XCMSCIELAB_VALIDSPEC
XCMSCIELUV_VALIDSPEC
XCMSCIEUVY_VALIDSPEC
XCMSCIEXYY_VALIDSPEC
XCMSCIEXYZ_VALIDSPEC
XCMSLRGB_RGBI_PARSESTRING
XCMSLRGB_RGB_PARSESTRING
XCMSTEKHVC_VALIDSPEC

また,次のファイルは廃止予定になっており, OpenVMS の今後のリリースで削除されます。

これらの関数を使用しているアプリケーションは,変更が必要です。

4.3.2 XConnectionNumber と ConnectionNumber の意味の変更

V1.3

DECwindows Motif V1.3 では, XConnectionNumber 関数と ConnectionNumber マクロの意味が変更されました。

以前のバージョンの DECwindows Motif では,この関数とマクロのどちらも,イベント・フラグ番号 (EFN) を返していました。次のように一般的な方法で実装されている呼び出しでは,イベント・フラグは入力を受け取った時点で設定されました。


sys$clref (ConnectionNumber (dpy)); 
  while (XPending (dpy) != 0) XNextEvent (dpy); 
  sys$waitfr (ConnectionNumber (dpy)); 

DECwindows Motif V1.3 では, XInitThreads の呼び出しによってマルチスレッドのサポートが有効になったときの,この関数やマクロの動作が変更されました。マルチスレッドが有効になっている場合は,この関数やマクロは論理接続番号 (LCN) を返すようになりました。

LCN は,サーバからの入力が存在する場合,読み取り設定状態にあります。 LCN は,すべての出力バッファが使用中でなければ,書き込み設定状態にあります。これ以外の状態は,弊社で使用するために予約されています。

EFN の代りに LCN を使用するには,上記の実装を,次のように変更します。


  int readState; 
while (XPending (dpy) != 0) XNextEvent (dpy); 
  decw$lcn_select_one (ConnectionNumber (dpy), &readState); 

LCN 状態はサーバからの入力を反映し,応答の処理中にキューイングされたイベントは含まないため,イベント・キューが空になった後に select 呼び出しを行わなければなりません。

DECW_CONNECTIONNUMBER_IS_LCN マクロに true (1) を設定して XLIB.H をインクルードすることによって, ConnectionNumber マクロが LCN 値 (常に利用可能) を取得するように強制できます。例を次に示します。


#define DECW_CONNECTIONNUMBER_IS_LCN 1 
#include <X11/Xlib.h> 
. 
. 
. 

これは,スレッドが初期化されているかどうかにかかわらず同様に機能しなければならない共有イメージやオブジェクト・ライブラリでこのマクロを使用する場合に便利です。

LCN インタフェースの詳細については, 『hp DECwindows Motif for hp OpenVMS Alpha New Features』 を参照してください。

4.3.3 OpenVMS システムでのロケールのサポート

V1.2--4

DECwindows Motif V1.2-4 for OpenVMS で提供されるロケール・サポートは, DEC C ランタイム・ライブラリでのロケール・サポートと互換性があります。このロケール環境で,これらの関数を使用して国際化アプリケーションを作成する場合は,次の手順に従ってください。

4.3.4 XSelectAsyncEvent ルーチンと XSelectAsyncInput ルーチン

V1.1

XSelectAsyncEvent ルーチンと XSelectAsyncInput ルーチンは, AST 引き渡し情報記憶用のメモリを割り当てます。このメモリは次のいくつかの方法で解放されます。

サブウィンドウ用の AST 引き渡し情報は, XDestroyWindow によっては解放されません。

所定のウィンドウ内のすべてのイベント・タイプの AST 通知をオフにし, AST 引き渡し情報も解放したいときには,クライアント・アプリケーションは, event_mask 引数に -1 (全ビット・セット) を指定し, ast_routine 引数に 0 を指定して XSelectAsyncEvent ルーチンあるいは XSelectAsyncInput ルーチンを呼び出してください。

4.3.5 コマンド・プロシージャが .PEN ファイルを作成

V1.0

Pascal プログラムが Xlib 用と Motif 用の環境ファイルを利用できるように, SYS$LIBRARY:DECW$PEN_BUILD.COM コマンド・プロシージャを実行する必要があります。このコマンド・プロシージャは, DECW $XLIBDEF.PEN ファイルと DECW$MOTIF.PEN ファイルを生成します。 Pascal プログラムへのコンパイルには,提供されている .PAS ファイルよりも .PEN ファイルの方が高速となります。

4.3.6 パラメータ/プロトコルのデータ・サイズの不適合

V1.0

いくつかの Xlib ルーチンはロングワードのパラメータを受け付けますが,サーバへ送信される X プロトコル・メッセージにはその全体は含められません。それぞれの場合で,Xlib ルーチンは,パラメータ値の最下位 16 ビットのみを送出します。これは,X プロトコル・メッセージ内のフィールド・サイズにより受ける制約です。

表 4-1 は, 16 ビット値としてのみ送出されるルーチンの名前とロングワード引数のリストです。

表 4-1 16 ビット値としてのみ送出されるルーチンの名前と引数
ルーチン名 引数
XAllocColorCells/ALLOC_COLOR_CELLS nplanes,npixels
XDrawArc/DRAW_ARC x,y,width,height, angle1,angle2
XDrawLine/DRAW_LINE x1,x2,x3,x4
XDrawPoint/DRAW_POINT x,y
XDrawRectangle/DRAW_RECTANGLE x,y,width,height
XDrawString/DRAW_STRING x,y
XDrawString16/DRAW_STRING16 x,y
XDrawText/DRAW_TEXT x,y
XDrawText16/DRAW_TEXT16 x,y
XFillArc/FILL_ARC x,y,width, height,angle1,angle2
XFillRectangle/FILL_RECTANGLE x,y,width,height

4.4 X Window System ツールキット (Xt)

この節は,X Window System ツールキット (Xt) に関するリリース・ノートです。

4.4.1 複合クラス拡張レコードの実行時警告

V1.3

X11R6.6 では,新しいブール値オプション (allows_change_managed_set) が CompositeClassExtensionRec に追加されました。このデータ構造体が変更された結果,以前のバージョンの CompositeClassExtensionRec でビルドされたアプリケーションでは,次のような警告メッセージが実行時に表示されることがあります。


X Toolkit Warning:  widget class Calc has invalid CompositeClassExtension 
record. 

このメッセージが表示されないようにするには, DECwindows Motif V1.3 に含まれているアップデートされた CompositeP.h ファイルを使用して,アプリケーションをビルドし直します。新しいオプションの値が適切かどうか確認してください。メモリがゼロに初期化された場合,以前と同じように動作します。初期化されていない場合の動作は予測できません。

4.4.2 XtOpenDisplay ルーチンと大文字/小文字の区別

V1.2--6

XtOpenDisplay のアプリケーション名が,コマンド・ラインに入力されたアプリケーション名を表す argv[0] からきている場合があります。

この場合,大文字/小文字の区別が保持されなければならない環境 (大文字/小文字の区別を有効にしてODS-5 システムを参照したり,ユーザ定義の argv リストを渡す場合など) では,問題になることがあります。

4.5 X Window System の拡張とプロトコル

この節は,ディスプレイ・サーバへの X Window System の拡張に関するリリース・ノートです。

4.5.1 EVI 拡張とカラーマップの競合

V1.3

利用可能なビジュアルの情報を, EVI (Extended Visual Information) 拡張を使用して要求している場合, DECwindows Motif ディスプレイ・サーバはカラーマップの競合情報を返しません。返されるデータは,競合が存在する場合でも,カラーマップの競合が存在しないことを必ず示しています。

4.5.2 Dead Mouse のサポート

V1.3

以前は AccessX 拡張で利用可能だった Dead Mouse 機能が, DECwindows Motif V1.3 では X キーボード拡張 (XKB) で利用可能な機能サブセットに組み込まれました。この機能は,Mouse Keys と呼ばれるようになりました。

DECwindows Motif の以前のバージョンでは Dead Mouse機能は X サーバの一部でもあったため, XKB 拡張が有効になっていなくてもこれらの機能は利用できます。

4.5.3 AccessX 拡張のサポート終了

V1.3

AccessX キーボード拡張のサポートが削除されました。この拡張のすべての機能 (スティッキ・キーなど) は, X キーボード拡張 (XKB) で利用できます。 XKB の詳細については, 『hp DECwindows Motif for hp OpenVMS Alpha New Features』 を参照してください。

4.5.4 セキュリティおよびアプリケーション・グループの拡張でグループがチェックされない問題

V1.3

セキュリティ (SECURITY) 拡張とアプリケーション・グループ (XC-APPGROUP) 拡張では,グループのチェックは実行されません。グループ ID を XSecurityGenerateAuthorization に渡すことはできますが,この ID はチェックされません。グループ ID が何であっても,承認されます。

4.5.5 オープン中の ICE 接続からの watch プロシージャの削除

V1.3

ICE 接続がオープン状態の間は, ICE の watch プロシージャを削除しないでください。オープン中の接続に watch プロシージャがメモリを割り当てていた場合,このプロシージャを削除すると watch プロシージャへのコールバックが適切に行われないため,メモリを解放することができません。

4.5.6 ICE 使用時の BAD_LOCAL_NODE エラー

V1.3

DECwindows Motif で実装していたオリジナルのトランスポートでは,ネットワーク・トランスポートとして LOCAL を使用した場合に,ノード指定を無視していました。 ICE プロトコルでは,ノード名は必ず,値 0 か,システム名からなる文字列でなければなりません。 ICE は LOCAL トランスポートを使用するため, ICE がノード指定をチェックしようとしたときに, BAD_LOCAL_NODE 警告メッセージが表示されます。

4.5.7 SmsGenerateClientId が ID を生成しない

V1.3

DECnet アドレスと TCP/IP アドレスのどちらも割り当てられていないシステムでは, XSMP 要求の SmsGenerateClientId はクライアント ID を生成できません。

4.5.8 拡張includeファイルの使用法

V1.2

拡張 include ファイルを含むプログラムを正しくコンパイルするためには, C の include ディレクトリ検索リストに論理名 DECW$INCLUDE を追加してください。この論理名を追加するには,次のコマンドを入力します。


$ DEFINE DECC$USER_INCLUDE DECW$INCLUDE

4.6 X Window System 国際化ライブラリ (XNL)

この節では,XNL ライブラリについて説明します。


前へ 次へ 目次 索引