サンプル:.NET COBOL Dialog System Application

.NET COBOL Customer サンプルの ManagedCustomer.sln は、Dialog System に付属していた元の Customer サンプルとほぼ同じです。主な違いは、このサンプルは .NET COBOL コードにコンパイルされ、.NET のもとで実行されるという点です。既存の Dialog System ランタイム呼び出しは残っていますが、自動的に Platform Invoke 呼び出しに変換されてネイティブ コードになります。つまり、ユーザー インターフェイスとスクリーンセットは、ネイティブ コードとして引き続き実行されます。次の図はこの例を示したものです。

このサンプルは、Platform Invoke 手法を使用しています。この手法により、.NET COBOL コードはダイナミック リンク ライブラリ (.dll) で実装されたアンマネージ関数を呼び出すことができます。プラットフォーム呼び出しは、API 呼び出しに似ています。

サンプルには、次のような構成の 1 つのプロジェクト (.NET COBOL コード プロジェクト) があります。

Customer.cbl

Customer.cbl には、ビジネス ロジック用および Dialog System スクリーンセットとの対話用の元のコードが含まれています。

Customer.cbl に対する唯一の変更点は、.NET COBOL コードがネイティブ Dialog System ランタイム システムを正しく呼び出すようになっていることです。コードは、Dialog System が必要とするパラメーターをすべて提供する (または、少なくともすべてのパラメーターを渡していないことを通知する) 必要があります。元の Customer サンプルは 2 つのパラメーターしか使用しないため、次のコードでは第 3 のパラメーターを「omitted」として追加する必要があります。

  Call-Dialog-System SECTION.
      CALL dialog-system USING ds-control-block,
                               customer-data-block
                               omitted