ACEAPI Compilation and Linkage examples

The application has to be compiled and linked to the appropriate stub modules for the environment.

Windows

The required static libraries aceapi.lib and rciclnt.lib are located in the CONNX -> PRECOMPILER -> WINDOWS directory.

C/C++

 

cl example.c /link

C:\CONNX32\PRECOMPILER\WINDOWS\aceapi.lib

C:\CONNX32\PRECOMPILER\WINDOWS\rciclnt.lib

 

Microfocus COBOL / NET Express

 

cbllink -v -o.example.exe example.cbl

 

Microfocus COBOL / NET Express does not require the static libraries to be linked, but the DLL's themselves must be dynamically loaded by the application at execution time, as follows :

 

*   ACEAPI DLL POINTERS (REQUIRED BY MICROFOCUS COBOL)

 01 API-DLL-POINTER.

    02 DLLPTR1                 PROCEDURE-POINTER.

    02 DLLPTR2                 PROCEDURE-POINTER.

    SET DLLPTR1

     TO ENTRY "aceapi"

    SET DLLPTR2

     TO ENTRY "rciclnt"

 

The above code is already declared in the supplied COBOL copybooks, aceapib.cbl and apidll.cbl.

 

Open COBOL

 

cobc -fstatic-call -fixed -v -Wall -Wtruncate -x example.cbl

C:\CONNX32\PRECOMPILER\WINDOWS\aceapi.lib

C:\CONNX32\PRECOMPILER\WINDOWS\rciclnt.lib

 

VisualAge PL/I

 

pli   example.pli

(LANGLVL(SPROG) LIMITS(EXTNAME(8)) MACRO NOINSOURCE NOT("\") OR("!") SOURCE SNAP)

ilink example.obj

C:\CONNX32\PRECOMPILER\WINDOWS\aceapi.lib

C:\CONNX32\PRECOMPILER\WINDOWS\rciclnt.lib

/OUT:example.exe

 

Open Systems

At execution time, include the CONNX 'embedded' directory in the LD_LIBRARY_PATH.

C/C++

 

gcc -I../DC_Work -Wall -c -o example.o example.c

 

gcc -o example example.o

-L/home/connx/embedded/LibRCI_32 -laceapi_32 -lrciclnt_32

 

Open COBOL

 

cobc -fstatic-call -fixed -v -Wall -Wtruncate -x example.cbl

-L/home/connx/embedded/LibRCI_32 -laceapi_32 -lrciclnt_32

 

z/OS

 

On z/OS platforms, link the application to the ACEAPI stub API3GL after successful compilation. At execution time, include the CONNX RCI load library in the STEPLIB.

IBM C

 

//  SET USRLOD=CONNX.LOAD

//  SET USROBJ=CONNX.OBJ

//  SET USRSRC=CONNX.SRCE

//*

//* --------------------------

//*        Compile / Link

//* --------------------------

//*

//C        EXEC PROC=EDCCL,

//         CPARM='DEF(BIGFUNC),longname,margins(1,80)',

//         CPARM2='noseq,noshowinc',

//         CPARM3='',

//         LPARM='NOMAP,ALIASES=NO,UPCASE=NO',

//         INFILE=EXAMPLE

//COMPILE.SYSIN  DD DISP=SHR,DSN=&USRSRC(EXAMPLE)

//COMPILE.SYSLIB DD

//               DD

//               DD DISP=SHR,DSN=&USRSRC

//LKED.SYSLMOD   DD DISP=SHR,DSN=&USRLOD

//LKED.SYSIN     DD *

   INCLUDE USROBJ(EXAMPLE)

   INCLUDE USROBJ(API3GL)

   ENTRY   MAIN

   NAME    EXAMPLE(R)

//LKED.USROBJ    DD DISP=SHR,DSN=&USROBJ

 

IBM COBOL

 

//  SET USRLOD=CONNX.LOAD

//  SET USROBJ=CONNX.OBJ

//  SET USRSRC=CONNX.SRCE

//*

//* --------------------------

//*        Compile / Link

//* --------------------------

//*

//C        EXEC PROC=IGYWCL,

// PARM.COBOL='NOLIST,MAP,XREF(SHORT),RENT,RMODE(ANY),LIB,TEST(SYM)',

// PARM.LKED='LIST,MAP,XREF,ALIASES=NO,UPCASE=NO,MSGLEVEL=4,EDIT=YES'

//*

//COBOL.SYSIN    DD DISP=SHR,DSN=&USRSRC(EXAMPLE)

//COBOL.SYSLIB   DD DISP=SHR,DSN=&USRSRC

//COBOL.SYSLIN   DD DISP=SHR,DSN=&USROBJ(EXAMPLE)

//COBOL.SYSPRINT DD SYSOUT=*

//COBOL.SYSTERM  DD SYSOUT=*

//LKED.SYSLIB    DD

//               DD DISP=SHR,DSN=&USRLOD

//LKED.SYSLIN    DD DISP=SHR,DSN=&USROBJ(EXAMPLE)

//               DD DDNAME=SYSIN

//LKED.SYSLMOD   DD DISP=SHR,DSN=&USRLOD

//LKED.SYSIN     DD *

   MODE    AMODE(31),RMODE(ANY)

   INCLUDE USROBJ(API3GL)

   ENTRY   EMPLOYEE

   NAME    EXAMPLE(R)

//LKED.USROBJ    DD DISP=SHR,DSN=&USROBJ

//LKED.USRLOD    DD DISP=SHR,DSN=&USRLOD

 

IBM PL/I

 

//  SET USRLOD=CONNX.LOAD

//  SET USROBJ=CONNX.OBJ

//  SET USRSRC=CONNX.SRCE

//*

//* --------------------------

//*        Compile / Link

//* --------------------------

//*

//C        EXEC PROC=IBMZCB,

//         LNGPRFX='IBMZ',

//         PARM.PLI=('LANGLVL(SPROG),MACRO,NOINSOURCE,SOURCE,',

//         'LIMITS(EXTNAME(8)),NOT("\"),OR("!")'),

//         PARM.BIND=('LIST,MAP,XREF,ALIASES=NO,UPCASE=NO,',

//         'MSGLEVEL=4,EDIT=YES')

//*

//PLI.SYSIN      DD DISP=SHR,DSN=&USRSRC(EXAMPLE)

//PLI.SYSLIB     DD DISP=SHR,DSN=&USRSRC

//PLI.SYSLIN     DD DISP=SHR,DSN=&USROBJ(EXAMPLE)

//PLI.SYSPRINT   DD SYSOUT=*

//PLI.SYSTERM    DD SYSOUT=*

//BIND.SYSLIB    DD

//               DD DISP=SHR,DSN=&USRLOD

//BIND.SYSLIN    DD DISP=SHR,DSN=&USROBJ(EXAMPLE)

//               DD DDNAME=SYSIN

//BIND.SYSLMOD   DD DISP=SHR,DSN=&USRLOD

//BIND.SYSIN     DD *

   MODE    AMODE(31),RMODE(ANY)

   INCLUDE USROBJ(API3GL)

   ENTRY   CEESTART

   NAME    EXAMPLE(R)

//BIND.USROBJ    DD DISP=SHR,DSN=&USROBJ

//BIND.USRLOD    DD DISP=SHR,DSN=&USRLOD