注: 次の説明はマネージ COBOL にのみ該当します。
あらゆる既存の COBOL プログラムを、.NET のマルチユーザー環境で使用できます。手順は次のとおりです。
- COBOL クラス ライブラリのプロジェクトを作成して、そのプロジェクトに手続き型 COBOL プログラムを追加します。
- プロジェクトを再ビルドします。
これにより、COBOL プログラムはインスタンス化が可能なクラスになります。プログラムはライブラリ (.dll) としてパッケージ化されます。直接実行できる実行形式としてはコンパイルされません。
呼び出される COBOL プログラムが手続き型であるかオブジェクト指向型であるかに関係なく、その COBOL を呼び出すプログラムが必要です。呼び出し元のプログラムは、C# や COBOL などの任意の .NET 言語で作成できます。
- 呼び出し元のプログラムのプロジェクトを作成します。通常、どの種類のプロジェクトでも構いません。プロジェクトには次への参照を追加します。
- Micro Focus Runtime (Interop RuntimeServices) アセンブリ。これにより、MicroFocus.COBOL.RuntimeServices への参照がプロジェクトに追加されます。
- Micro Focus Runtime アセンブリ。これにより、MicroFocus.COBOL.Runtime への参照がプロジェクトに追加されます。これは、呼び出し元のプログラムを COBOL 以外の .NET 言語で作成する場合にのみ必要です。
- 呼び出し先の COBOL クラス ライブラリを含むプロジェクト。
- 呼び出し元のプログラムで、MicroFocus.COBOL.RuntimeServices.RunUnit コンストラクターを使用して実行単位を作成します。
- Try ... Finally 構文を使用して、プログラムが失敗した場合に実行単位を破棄するようにします。
- RunUnit.Call() メソッドを使用して COBOL クラスを呼び出すか、次の手順を行います。
- すべてのパラメーターで .NET 標準データ型を使用します。また、呼び出し先の COBOL がこれらの .NET 標準データ型を受け取れるようにします。
- 呼び出し先の手続き型 COBOL プログラムのインスタンスを作成します。
- RunUnit.Add() メソッドを使用して、プログラム インスタンスを新しい実行単位に追加します。
- 新しい実行単位内でプログラム インスタンスを起動します。
- StopRun() メソッドを使用して、実行単位の使用終了後に、実行単位を破棄します。
注:
- 実行単位によりランタイム エラーが発生した場合、System.ApplicationException がスローされます。
- 複数の言語を使用する環境のオブジェクト指向 COBOL プログラムでは、静的メソッドおよびデータは、ランタイム エラーの原因となるため使用できません。
- 実行単位が、それぞれ異なるスレッドで実行されるため、データ アクセスが同期化されるようにします。
MicroFocus.COBOL.RuntimeServices アセンブリ内の RunUnit クラスの詳細については、「RunUnit Class」次を参照してください。