COBOL2002 ユーザーズガイド

[目次][用語][索引][前へ][次へ]

19.4.2 呼び出し規約

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

32bit版PC(x86) COBOL2002の場合
  • cdecl
  • stdcall

64bit版PC(x64) COBOL2002の場合
  • fastcall

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

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

<この項の構成>
(1) cdecl呼び出し規約(32bit版PC(x86) COBOL2002で有効)
(2) stdcall呼び出し規約(32bit版PC(x86) COBOL2002で有効)
(3) fastcall呼び出し規約(64bit版PC(x64) COBOL2002で有効)

(1) cdecl呼び出し規約(32bit版PC(x86) COBOL2002で有効)

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

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

(2) stdcall呼び出し規約(32bit版PC(x86) COBOL2002で有効)

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

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

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

(3) fastcall呼び出し規約(64bit版PC(x64) COBOL2002で有効)

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

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