|
External Development Guide: Callable IDL |
|
If you distribute programs that call IDL with a runtime license or an embedded license, use IDL_RuntimeExec(). After initialization IDL_RuntimeExec() can be used to run self-contained IDL applications from a Save/Restore file. IDL_RuntimeExec() restores the file, then attempts to call an IDL procedure named MAIN. If no MAIN procedure is found, the function attempts to call a procedure with the same name as the restored Save file. (That is, if the Save file is named myprog.sav, IDL_RuntimeExec() looks for a procedure named myprog.)
| Note IDL_RuntimeExec() clears the value of the !ERROR_STATE system variable before it restores the specified Save file. |
IDL_RuntimeExec() returns the value of the !ERROR_STATE.CODE system variable after IDL attempts to restore the specified file and execute the MAIN or named procedure. Thus, a return value of zero indicates that the specified Save file was restored and the appropriate procedure executed without error.
int IDL_RuntimeExec(char *file);
where:
The complete path specification to the Save file to be restored, in the native syntax of the platform in use.
If the return value from IDL_RuntimeExec() is not zero, you may wish to check the values of other fields in the !ERROR_STATE structure. The following code fragment populates buffer with the values of the !ERROR_STATE.MSG, !ERROR_STATE.SYS_MSG, and !ERROR_STATE.CODE system variable fields:
sprintf(buffer, "error_state.msg: %s\nerror_state.sys_msg: %s\nerror_state: %d\n", IDL_STRING_STR(IDL_SysvErrStringFunc()), IDL_STRING_STR(IDL_SysvSyserrStringFunc()), IDL_SysvErrorCodeValue() );
See Functions for Returning System Variables for additional information.
IDL Online Help (March 06, 2007)