ページの先頭行へ戻る
NetCOBOL V12.2 PowerCOBOL ユーザーズガイド
FUJITSU Software

9.1.2 COBOLで作成したDLLを使用する

COBOLで作成したDLLは、以下のどちらかの方法で利用することができます。

インポートライブラリによる呼び出し

この方法は、COBOLのDLLに対応するインポート用のライブラリファイルを、呼び出し元となるモジュールの外部ファイルとして登録しておく方法です。

モジュールへの外部ファイルの登録方法については、「5.1.1 外部ファイルを使う」を参照してください。

この方法では、以下のように、CALL文を使ってDLL中のサブプログラムを直接呼び出します。

    ENVIRONMENT     DIVISION.
    DATA            DIVISION.
    WORKING-STORAGE SECTION.
    PROCEDURE       DIVISION.
        …
        CALL "COBOLSUB"

注意

  • 実行時には、呼び出すサブプログラムが含まれるDLLファイルが必要です。DLLファイルは、呼び出し元ファイルと同じフォルダまたはPATH環境変数で指定されているフォルダに格納してください。

  • インポートライブラリによる呼び出しを使用する場合には、処理がそのモジュール内で完結するようにしてください。処理が複数のモジュールに分散していて、複数のDLLから呼び出されるDLLを使用する場合は、次に説明する、「"CALL 一意名"による呼び出し」を使用してください。

"CALL 一意名"による呼び出し

この方法は、インポートライブラリを使用せず、アプリケーションの実行時にDLLを動的にロードしてサブプログラムを呼び出す方法です。

この方法では、アプリケーションを実行する前に、DLLを動的にロードするためのエントリ情報を、NetCOBOLの実行環境情報に設定しておく必要があります。エントリ情報の設定方法については、『NetCOBOL ユーザーズガイド』を参照してください。

この方法では、以下のように、CALL文を使ってエントリ情報に設定するエントリ名を呼び出します。

    ENVIRONMENT     DIVISION.
    DATA            DIVISION.
    WORKING-STORAGE SECTION.
    01 エントリ名   PIC X(16) VALUE "COBOLSUB".
    PROCEDURE       DIVISION.
        …
        CALL エントリ名

注意

この呼び出しでは、上記のように、CALL文で変数を呼び出します。これは、定数を呼び出すCALL文(CALL "COBOLSUB")とは異なり、実行時に呼び出し先が確定する呼び出し方法です。"CALL 一意名"を使った呼び出し方法の詳細については、『NetCOBOL ユーザーズガイド』を参照してください。