8.2.6 外字の有効化
Windowsでは,外字登録はログオンユーザごとに実行されます。しかし,Windowsサービスプログラムを実行するセッション0のように,Windowsへログオンしないでプログラムを実行する環境では,ユーザプロファイルが読み込まれないため外字が有効になりません。ただし,次のどちらかの場合,プログラムからWindows APIのEnableEUDC関数を発行することで外字を有効にできます。
-
プログラムにユーザプロファイルを読み込む機能がある。
-
プログラムを実行するユーザで,Windowsに一度でもログオンしている。
COBOL2002のGDIモード印刷およびESC/Pモード印刷では,OPEN文で内部的にEnableEUDC関数を発行するため,上記の環境でCOBOLプログラムを実行する場合,外字が有効になります。EnableEUDC関数の処理は,環境変数CBLEUDCFUNCの指定で変更できます。
環境変数CBLEUDCFUNCを指定すると,GDIモード印刷およびESC/Pモード印刷のOPEN文で内部的に発行するEnableEUDC関数の処理を変更できます。
- 形式
CBLEUDCFUNC={ ERRORSTOP | NOFUNC }
- ERRORSTOP
-
EnableEUDC関数がエラーを返したときに重大エラーのメッセージを出力し,FILE STATUS句やUSE手続きがなければプログラムは終了します。FILE STATUS句の指定がある場合,入出力状態の値には90を設定します。
- NOFUNC
-
EnableEUDC関数は呼び出しません。
環境変数CBLEUDCFUNCの指定がない場合,および指定値に誤りがある場合は,EnableEUDC関数がエラーを返したときに警告メッセージを出力して,プログラムを継続します。このとき,FILE STATUS句があってもメッセージを出力し,入出力状態の値は00になります。
- 注意事項
-
-
環境変数CBLEUDCFUNCの指定がない環境で警告メッセージが出力された場合,外字が正しく印刷されないことがあります。この警告メッセージが出力された場合,印刷結果を確認し,外字が正しく印刷されていないときはプログラムを再実行してください。
-
NOFUNCを指定する場合は,外字を使用していないこと,またはOPEN文でEnableEUDC関数を呼び出さなくても外字が有効な環境であることを確認してください。
-