COBOL2002 ユーザーズガイド


18.4.2 呼び出し規約

COBOLプログラムでは,以下の呼び出し規約のプログラムを作成できます。

Windows(x86) COBOL2002の場合
  • cdecl

  • stdcall

Windows(x64) COBOL2002の場合
  • fastcall

呼び出し規約を指定することによって,Cなどの他言語で作成したプログラムからCOBOLプログラムを呼び出したり,COBOLプログラムから他言語のプログラムを呼び出せます。

Windows(x86) COBOL2002の場合,呼び出し規約は,呼び出すプログラムで,環境部のEXTERNAL-PROGRAM SECTIONのCALL-CONVENTION段落に指定します。呼び出し規約の指定方法については,マニュアル「COBOL2002 言語 拡張仕様編」 「25.2.1 プログラム間連絡機能の環境部」を参照してください。

〈この項の構成〉

(1) cdecl呼び出し規約(Windows(x86) COBOL2002で有効)

cdecl呼び出し規約は,Cプログラムのcdecl呼び出し規約のインタフェースを持つプログラムを呼び出すときに使用します。DLLでないプログラムは,すべてcdecl呼び出し規約となります。

cdecl呼び出し規約のプログラムを呼ぶ場合は,呼び出すCOBOLプログラムのCALL-CONVENTION段落で,呼び出し先プログラムとCDECLを関連づけます。なお,CALL-CONVENTION段落の指定がない場合は,CDECLが仮定されます。

(2) stdcall呼び出し規約(Windows(x86) COBOL2002で有効)

stdcall呼び出し規約は,Cプログラムのstdcall呼び出し規約と同じインタフェースを持つプログラムを呼び出すときに使用します。

stdcall呼び出し規約のプログラムを呼ぶ場合は,呼び出すCOBOLプログラムのCALL-CONVENTION段落で,呼び出し先プログラムとSTDCALLを関連づけます。

CALL-CONVENTION段落の指定がない場合でも,-StdCallオプションを指定すると,呼び出すプログラムの呼び出し規約をstdcallにできます。詳細は,「35 実行可能ファイルとDLLの作成」を参照してください。

(3) fastcall呼び出し規約(Windows(x64) COBOL2002で有効)

fastcall呼び出し規約は,Cプログラムのfastcall呼び出し規約と同じインタフェースを持つプログラムを呼び出すときに使用します。

Windows(x64) COBOL2002では,fastcall呼び出し規約のプログラムだけ作成できます。