/*-------------------------------------------------------------------+ | Copyright (c) 1995, SAS Institute Inc. | | Unpublished - All Rights Reserved | | S A S / C S A M P L E | | | | NAME: CXCOBPC | | LANGUAGE: C++ | | PURPOSE: THIS EXAMPLE DEMONSTRATES A C++ MAIN CALLING A | | COBOL ROUTINE, WHICH TAKES A PARAMETER LIST. | | IT CONSISTS OF SAMPLE LIBRARY MEMBERS | | CXCOBPC, CXCOBPCO, AND CXCOBPRM. | | MVS - | | COMPILE: USE JCL PROVIDED IN SAMPLE.AUX(CXCOBPRM). | | LINK: USE JCL PROVIDED IN SAMPLE.AUX(CXCOBPRM). | | EXECUTE: USE JCL PROVIDED IN SAMPLE.AUX(CXCOBPRM). | | TSO - | | COMPILE: COBOL - USE COBOL COMPILER. | | C++ - LCXXC CXCOBPC | | LINK: ILCLINK w/ CONTROL CARDS IN SAMPLE.AUX(CXCOBPRM). | | EXECUTE: CALL .LOAD(CXCOBPRM) | | CMS - | | COMPILE: COBOL - USE COBOL COMPILER. | | C++ - LCXX CXCOBPC | | LINK: ILCLINK w/ CONTROL CARDS IN SAMPLE.AUX(CXCOBPRM). | | EXECUTE: CALL CXCOBPRM | | MISC NOTES: THE FOLLOWING LSCL102 MESSAGE CAN BE IGNORED: | | CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(IGZEBST) | +-------------------------------------------------------------------*/ #include #include #include #include #include #include char indata(|30|); char outdata(|30|); // COBPROG is really COBOL, but we have to fake out the C++ translator extern "C" { void __asm COBPROG(char * , char *); } main() { void *token; if(!(token = mkfmwk("cobol",""))) exit(16); else { strcpy(indata, "string in C++ main"); strcpy(outdata, "DO"); cout << "before calling cobprog: " << indata << endl; COBPROG(indata, outdata); cout << "after calling cobprog: " << outdata << endl; cout << "bye!" << endl; if (dlfmwk(token)) exit(8); else exit(0); } return 1; }