/*---------------------------------------------------------------------+ | Copyright (c) 1995, SAS Institute Inc. | | Unpublished - All Rights Reserved | | S A S / C S A M P L E | | | | | | NAME: CTOCXX2 | | LANGUAGE: C++ | | PURPOSE: Call a C++ function from a C main(). Then, call a C | | function from a C++ function. | | MVS - | | COMPILE: Compiled using LC370C for C, LCXX for C++. | | LINK: Linked using LCXXL. | | EXECUTE: Call <prefix>.LOAD(CTOCXX). | | NOTES: | | TSO - | | COMPILE: Compile using LC370C for C, LCXX for C++. | | LINK: Link the C and C++ object modules using CLK370 with | | "CXX" option. | | EXECUTE: Call <prefix>.LOAD(CTOCXX). | | NOTES: | | CMS - | | COMPILE: Compile using LC370C for C, LCXX for C++. | | LINK: Link the C and C++ object modules using CLINK with | | "CXX" and "GENMOD" options. | | EXECUTE: Call CTOCXX. | | NOTES: | | MISC NOTES: This example consists of 2 modules. CTOCXX1 is the C | | source module. CTOCXX2 is the C++ source module. | | | +---------------------------------------------------------------------*/ #include <iostream.h> void cxxnext(); extern "C" void callc(); /* the C function called from C++ */ extern "C" gotocxx() /* the C++ function called from C */ { cout << "This is C++ function gotocxx()" << endl; cout << "Call another C++ function" << endl; cxxnext(); cout << "Returning to C main()" << endl; return 0; } void cxxnext() /* another C++ function */ { cout << "This is C++ function cxxnext()" << endl; cout << "Call a C function from C++" << endl; callc(); cout << "Back in C++ function cxxnext()" << endl; }