Rational Developer for System z バージョン 7.6

COBOL サンプル・プログラムの環境変数へのアクセス

実行時に、環境変数の値を動的に検索する必要がある場合があります。このトピックでは、ある COBOL サンプル・プロジェクトのコードを変更して環境変数へのアクセスを可能にする 1 つの方法について説明します。

このトピックで使用する COBOL サンプル 1 は、ワークベンチ・サンプル・インターフェースから入手できます。このサンプルには 2 つの COBOL ファイル、StartApp.cbl および PrintApp.cbl が含まれています。 以下の指示に従って、このサンプルを含むプロジェクトを変更して、StartApp.cbl が環境変数を読み込んでその値を表示できるようにします。

  1. z/OS® プロジェクト・パースペクティブへの切り替えを行います。
  2. COBOL サンプル 1 のサンプル・プロジェクトの作成を実行します。
  3. StartApp.cbl を編集します。
  4. Working-Storage Section に以下の行を追加します。
    01 P pointer.
    01 ENVVAR pic x(5) value Z"PATH".
    01 var-ptr pointer.
    01 var-len pic 9(4) binary.
  5. Linkage Section に以下の行を追加します。
    01 var pic x(1000).
  6. Procedure Division の Initialize ステートメントの後に以下の行を追加します。
    Set P to address of ENVVAR.
    >>CALLINT OPTLINK
    call "getenv" using by value P returning var-ptr.
    >>CALLINT
    if var-ptr = null then
    	 Display "PATH is null"
    else
    	 Set address of var to var-ptr
    	 Move 0 to var-len
    	 Inspect var tallying var-len for characters 
    	 	before initial x"00"
    	 Display "PATH = " var (1:var-len)
    end-if.
  7. プロジェクトのプロパティーを変更するには、以下の手順を実行します。
    1. 「ローカル COBOL ビルド・オプション」プロパティー・ページを開き、 「コンパイル・オプション」フィールドに以下のコードを追加します。
      ,NODYNAM,PGMNAME(LONGMIXED)  
      現行オプション・セットと区別するために、必ず先頭にコンマを付けてください。
    2. 「適用」をクリックします。
    3. ローカル・リンク・オプション」を選択して、「リンク・オプション」に以下を追加します。
      cpprmi36.dll
      このファイルは、Rational® Developer for System z® インストール・パスの bin ディレクトリー (例えば、c:¥Program Files¥IBM¥SDP¥bin) にあります。
    4. 「適用」をクリックします。
  8. 「z/OS プロジェクト」ビューで、StartApp.cbl を右クリックし、「エントリー・ポイントとして指定」をクリックします。 このアクションがメニューに表示されておらず、「エントリー・ポイントをクリア」アクションが表示されている場合、それ以上アクションは必要ありません。
  9. プロジェクト名を右クリックし、「プロジェクトを再ビルド」を選択します。 エラーがなければ、BuildOutput フォルダーに実行可能プログラムが作成されています。 実行可能プログラムの名前は、StartApp.exe です。
  10. プログラムが動くかどうかをテストします。StartApp.exe をダブルクリックします。 コマンド・シェルが開き、プロンプト「名前または Q を入力して終了します (Enter a name or Q to quit)」が表示されます。

トラブルシューティングが必要な問題

プロジェクトのビルド後に StartApp.exe が作成されていない場合、タスク・リストに以下のようなメッセージが出力されているはずです。
Error LNK2029: "?GETENV": unresolved external
通常これは、上記で指定された .dll ファイルが見つからない場合に発生します。 必要な .dll ファイルの cpprmi36.dll は、通常、Rational Developer for System z インストール・パスの bin フォルダーにあります。 例えば、C:¥Program Files¥IBM¥SDP¥bin にあります。「リンク・オプション」フィールドにあるファイルへの完全パスを指定します。この場合、C:¥Program Files¥IBM¥SDP¥bin¥cpprmi36.dll. のように指定します。

他のエラーが発生した場合、「コンパイル・オプション」のプロパティーが上記で説明したとおりに正しく更新されているかを確認してください。


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)