/*-------------------------------------------------------------------+
|                Copyright (c) 1995, SAS Institute Inc.              |
|                  Unpublished - All Rights Reserved                 |
|                    S A S / C   S A M P L E                         |
|                                                                    |
|       NAME: CXXPASCC                                               |
|   LANGUAGE: C++                                                    |
|    PURPOSE: THIS EXAMPLE DEMONSTRATES A C++ MAIN CALLING A         |
|             PASCAL ROUTINE.                                        |
|             IT CONSISTS OF SAMPLE LIBRARY MEMBERS                  |
|             CXXPASCC, CXXPASCP, AND CXXPASCC.                      |
| MVS -                                                              |
|    COMPILE: USE JCL PROVIDED IN SAMPLE.AUX(CXXPASCC).              |
|       LINK: USE JCL PROVIDED IN SAMPLE.AUX(CXXPASCC).              |
|    EXECUTE: USE JCL PROVIDED IN SAMPLE.AUX(CXXPASCC).              |
| TSO -                                                              |
|    COMPILE: PASCAL - USE PASCAL COMPILER.                          |
|             C++ - LCXXC CXXPASCC                                   |
|       LINK: ILCLINK, USING CONTROL CARDS IN SAMPLE.AUX(CXXPASCC).  |
|    EXECUTE: CALL .LOAD(CXXPASCC)                           |
| CMS -                                                              |
|    COMPILE: PASCAL - USE PASCAL COMPILER.                          |
|             C++ - LCXX CXXPASCC                                    |
|        LINK: ILCLINK, USING CONTROL CARDS IN SAMPLE.AUX(CXXPASCC). |
|     EXECUTE: CALL CXXPASCC                                         |
|  MISC NOTES: THE FOLLOWING LSCL102 MESSAGES CAN BE IGNORED:        |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(AMPXRETC)  |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(AMPXHALT)  |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(AMPXSEGE)  |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(AMPXSTRT)  |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(AMPXPARM)  |
|    WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(PASCPROC)  |
+-------------------------------------------------------------------*/
#include 
#include 

 void __pascal pascproc();

main()
  {
   void* token;
   cout << "Hello, from the C++ program!" << endl;
   token = mkfmwk("PASCAL","");
   if (!token)
    {
     cout << "Can't create the Pascal framework" << endl;
     return(12);
    }

   cout << "Calling PASCAL routine!" << endl;
   pascproc();
   cout << "Returned back from PASCAL!" << endl;
   dlfmwk(token);
   return(0);
  }