ページの先頭行へ戻る
NetCOBOL V11.0 入門ガイド
FUJITSU Software

6.32 メッセージボックスの出力(Sample31)

ここでは、本製品で提供するサンプルプログラム-Sample31-について説明します。

Sample31では、プログラム間連絡機能を使って、Windowsシステム関数を呼び出し、メッセージボックスを出力するプログラムの例を示します。プログラム間連絡機能の詳細は、“NetCOBOL ユーザーズガイド”の“サブプログラムを呼び出す~プログラム間連絡機能~”を参照してください。

なお、このSampleではCOBOLプログラムの復帰値をバッチファイルで参照します。

概要

STDCALL呼出し規約を使用し、CALL文でWindowsシステム関数の“MessageBoxA”(末尾に“A”が付いていることに注意してください)を呼び出します。[はい]/[いいえ]/[キャンセル]ボタンを持つメッセージボックスを出力し、メッセージボックスからの復帰値をCALL文のRETURNING指定で受け取ります。さらにその復帰値に対応する値をCOBOLプログラムからの復帰値として、バッチファイルで参照します。

COBOLプログラムの復帰値はバッチファイルではERRORLEVELという名前で参照することができます。以下は“Sample31.BAT”の一部です。

:START
    start /w MsgBox.exe
    @rem 復帰値が9999以上ならCOBOLプログラムを再度呼び出す
    if errorlevel 9999 goto START
    @rem 復帰値が9以上なら『いいえ』が押された。
    if errorlevel 9 goto NG
    echo 『はい』が押されました。

提供プログラム

使用しているCOBOLの機能

注意

  • メッセージ本文とメッセージタイトルの文字列の末尾には、X”00”またはLOW-VALUEを格納しなければなりません。文字列を部分参照して、末尾にX”00”またはLOW-VALUEを格納する必要があります。

  • メッセージボックスを表示する関数名は、“MessageBoxA”です。小文字を有効にするため、翻訳オプションNOALPHALまたはALPHAL(WORD)を指定する必要があります。