概要

H2cpy は、Win32 API 呼び出しなどに使用する C 言語ヘッダー ファイルを、等価な COBOL 文に変換するユーティリティ プログラムです。このユーティリティは、次の変換をサポートします。

C typedef を COBOL 形式定義へ
C 関数プロトタイプを COBOL CALL プロトタイプへ
#define を 78 レベル項目へ

Header-to-copy ユーティリティは、標準的な呼び出し規則や、パラメーター受け渡しのメソッドも、等価な COBOL に変換します。

この後、COBOL システムはコピーファイル内のエントリを使用して、COBOL プログラムで使用されているパラメーターが、オリジナルの C 言語ヘッダー ファイルの定義と合っているかを確認します。呼び出しインターフェイスが C 言語ヘッダー ファイルで提供されるルーチン ライブラリを使用する場合 (例えば、Win32 API を呼び出す場合) には、H2cpy により COBOL でのプログラミングが簡単になります。

Header-to-copy ユーティリティは、指定されたすべての C ヘッダー ファイルを、1 つの COBOL コピーファイルに変換します。C ヘッダー ファイルを個別のコピーファイルに変換し、これらのコピーファイルをプログラムで使用することはできません。

変換処理の結果として、Header-to-copy ユーティリティは COBOL ファイルを 2 つ作成します。これらのファイルは、COPY 文を使用して COBOL プログラムにインクルードできます。メインのファイルは .cpy ファイルで、型定義とリテラルを含みます。補助的な .ext ファイルは、外部データ宣言を含みます。H2cpy は、C 言語インターフェイスを使用するのみでなく、C のプログラムを COBOL に移植する場合にも役立ちます。

複数のヘッダー ファイルを変換するには、コマンド ラインでそれらのファイル名をリストするか、各ヘッダー ファイルに対する #include 文を持つラッパー ヘッダー ファイルを作成します。このときに、ヘッダー ファイルが定義済み値へのマクロの設定を前提としているかどうかを考慮する必要があります。C コンパイラが暗黙的に設定するマクロもありますが、上記のようなマクロは明示的に設定する必要があります。設定は、コマンド ラインかラッパー ヘッダー ファイルで行います。

Windows API のヘッダー ファイルなど、特定のタイプのヘッダー ファイルを頻繁に変換する場合は、同じような H2cpy オプション グループを使用することになります。このような場合は、h2cpy.dir ファイルに必要なオプションを記述しておけば、手間を省くことができます (詳細は、H2cpy の -G コマンド ライン オプションの説明を参照)。

Header-to-copy ユーティリティは、正しい ANSI C および ISO C のソース ファイルをすべて処理できます。不正な C を検出した場合には、H2cpy の処理が失敗するか、不正な COBOL コードを H2cpy が生成することがあります。

Header-to-copy ユーティリティは、次のどちらかの方法で起動します。