COBOL2002 言語 拡張仕様編


25.2.1 プログラム間連絡機能の環境部

〈この項の構成〉

(1) 特殊名段落(SPECIAL-NAMES)

形式

[図データ]

機能

機能名を呼び名に関連づける。

構文規則

  1. 呼び名1の構文規則については,標準仕様編を参照のこと。

一般規則

  1. 機能名1は,CDECL,STDCALLまたはPASCALでなければならない。

  2. CDECL指定は,C(cdecl)呼び出し規約を示す。

  3. STDCALL指定は,standard call(stdcall)呼び出し規約を示す。

  4. PASCAL指定は,PASCAL呼び出し規約を示す。

【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「8.2.6 特殊名段落(SPECIAL-NAMES)

(2) 外部プログラム節(EXTERNAL-PROGRAM SECTION)

形式

[図データ]

機能

外部プログラム節は,外部プログラムの属性を指定する。

UNIX COBOL2002およびWindows(x64) COBOL2002では,外部プログラム節は覚え書きとする。

UNIX COBOL2002の場合,呼び出し規約は常に各プラットフォームが規定するABIに従う。Windows(x64) COBOL2002の場合,呼び出し規約は常にfastcallとなる。呼び出し規約については,マニュアル「COBOL2002 ユーザーズガイド」の呼び出し規約の説明を参照のこと。

構文規則

  1. プログラム名1は,利用者定義語の規則に従う。

    -UniObjGenオプションを指定した場合,プログラム名1にUTF-8で多バイトとなる文字が含まれてはならない。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」のUnicode機能を参照のこと。

  2. 定数1は,プログラム名を引用符で囲み,英数字定数として指定する。

    -UniObjGenオプションを指定した場合,定数1にUTF-8で多バイトとなる文字が含まれてはならない。-UniObjGenオプションについては,マニュアル「COBOL2002 ユーザーズガイド」のUnicode機能を参照のこと。

  3. 呼び名1は,特殊名段落でCDECL,STDCALLまたはPASCALに関連づけられていなければならない。ただし,PASCALを指定した場合,STDCALLと同様となる。

  4. ほかのプログラムを含むプログラムの外部プログラム節中で明示的または暗黙的に指定した記述項は,含まれるプログラムそれぞれに適用される。

  5. 外部プログラム節は,別のプログラムに直接または間接に含まれるプログラムで指定してはならない。

一般規則

  1. プログラム名1および定数1は,呼び名1の呼び出し規約を用いている。プログラム名1および定数1を指定したCALL文は,呼び名1が関連づけられた呼び出し規約に従う。

    外部プログラム節に指定されていないプログラムの呼び出し規約は,Cの呼び出し規約に従う。

  2. プログラム名1および定数1がCOBOLプログラムのときの規則を次に示す。

    (a)COBOLプログラムがEXE形式のとき,呼び名1は特殊名段落でCDECLに関連づけられていなければならない。

    (b)COBOLプログラムがDLL形式のとき,呼び名1は特殊名段落でCDECL,STDCALLまたはPASCALに関連づけられていなければならない。

  3. ほかのプログラムを含むプログラムの外部プログラム節中で明示的または暗黙的に指定した記述項は,含まれるプログラムそれぞれに適用される。