実行時に、環境変数の値を動的に検索する必要がある場合があります。このトピックでは、ある COBOL サンプル・プロジェクトのコードを変更して環境変数へのアクセスを可能にする 1 つの方法について説明します。
このトピックで使用する COBOL サンプル 1 は、ワークベンチ・サンプル・インターフェースから入手できます。このサンプルには 2 つの COBOL ファイル、StartApp.cbl および PrintApp.cbl が含まれています。 以下の指示に従って、このサンプルを含むプロジェクトを変更して、StartApp.cbl が環境変数を読み込んでその値を表示できるようにします。
01 P pointer. 01 ENVVAR pic x(5) value Z"PATH". 01 var-ptr pointer. 01 var-len pic 9(4) binary.
01 var pic x(1000).
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.
,NODYNAM,PGMNAME(LONGMIXED)現行オプション・セットと区別するために、必ず先頭にコンマを付けてください。
cpprmi36.dllこのファイルは、Rational® Developer for System z® インストール・パスの bin ディレクトリー (例えば、c:¥Program Files¥IBM¥SDP¥bin) にあります。
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. のように指定します。
他のエラーが発生した場合、「コンパイル・オプション」のプロパティーが上記で説明したとおりに正しく更新されているかを確認してください。