COBOL2002 ユーザーズガイド


16.3.3 モードの決定方法

COBOLプログラムをGUIモード,CUIモードのどちらで実行するかは,アプリケーションの主プログラムがCOBOLプログラムの場合と,他言語のプログラムの場合とで,次のように指定方法が異なります。

〈この項の構成〉

(1) アプリケーションの主プログラムがCOBOLプログラムの場合

アプリケーションの主プログラムがCOBOLプログラムの場合は,アプリケーションの主プログラムのコンパイル時にコンパイラオプションを指定することで,GUIモード,CUIモードのどちらで実行するかを選択できます。

形式

ccbl2002 {-Lib,GUI|-Lib,CUI} ソースファイル名

-Lib,GUI

COBOLプログラムを,GUIモードで実行したい場合に指定します。

-Lib,CUI

COBOLプログラムを,CUIモードで実行したい場合に指定します。

-Lib,GUI,-Lib,CUIオプションのどちらも指定しなかった場合は,-Lib,GUIオプションが仮定されます。また,両方指定した場合は,後に指定したオプションが有効となります。

(2) アプリケーションの主プログラムが他言語のプログラムの場合

他言語の主プログラムからCOBOLで作成した副プログラムを呼び出すと,COBOLプログラムは,CUIモードで実行されます。

COBOLプログラムをGUIモードで実行したい場合は,COBOLプログラムを呼び出す前に,他言語の主プログラムからCBLGINTサービスルーチンを呼び出してください。

他言語のプログラムから,CBLGINTサービスルーチンを使ってCOBOLプログラムをGUIモードで実行する方法を,次に示します。なお,CBLGINTサービスルーチンの規則については,「30.4.1 CBLGINT」を参照してください。

(a) Cプログラムからの呼び出し例

#include <windows.h>
 
  extern int WINAPI CBLGINT();  /*CBLGINTの外部参照宣言*/
 
  CBLGINT();                    /*CBLGINTの呼び出し*/
 
  (COBOLプログラムの呼び出し)

(b) Visual Basicからの呼び出し例

 関数宣言 
 Private Declare Sub CBLGINT Lib "CBL85RT.DLL"
         Alias "_CBLGINT@0" ()
 
 手続き 
 Private Sub Command1_Click()
   Call CBLGINT
         :
  (COBOLプログラムの呼び出し)
         :
 End Sub

関数宣言でのエイリアスの名称については,次のとおり指定する必要があります。

Private Declare Sub CBLGINT Lib "CBL85RT.DLL"
                            Alias "_CBLGINT@0" ()