付録  ILE-RPGから戻り値をもらう
RPGプログラマーの為のC言語講座

ILE−RPGから戻り値をもらう場合の、サンプルコードです。

ILE−RPGでは、メインプロシージャでの戻り値は定義できません

戻り値が使用出来るのは、サブプロシージャだけです

RPGを呼び出すPGM PROG7C

/*---------------------------------------------------------------*/
/* PROGRAM-ID  : PROG7C                                          */
/* REMARKS     : RPG を呼びたす PGM                           */
/* AUTHOR      : Y.Ide                                           */
/* DATE-WRITEN : 1999/11/07                                      */
/* VERSION     : 01.00 ORIGINAL                                  */
/*---------------------------------------------------------------*/

#include<stdio.h>

/* 関数プロトタイプ宣言 */
int  PROG7P(int *, int *);

int  main(int argc, char *argv[]){
  int p1 = 11;
  int p2 = 12;
  int rc = 0;

  rc = PROG7P(&p1,&p2);

  printf("RC = %d",rc);

}

Cから呼び出されるPGM PROG7R メインなし

    *-------メインプロシージャなしを宣言---------*
   H NOMAIN
    *-----------プロシージャプロトタイプ----------*
   D PROG7P          PR            10I 0
   D   P1                          10I 0
   D   P2                          10I 0
    *-----------プロシージャ定義開始--------------*
   P PROG7P          B                   EXPORT
    *-----------インターフェース定義--------------*
   D PROG7P          PI            10I 0
   D   P1                          10I 0
   D   P2                          10I 0
    *---演算----*
   C                   RETURN    P1 + P2
   P PROG7P          E
    *-----------プロシージャ定義の終わり----------*