Directed to Rick, because I don't know who else can answer it, So I've been fooling with the RexxCreateInterpreter() and the APIs. I have an example program that works great, as long as there is not an error in the file I use LoadPackage() on.
In semi-pseudo code this is what I'm doing in a C++ program. (My C++ which is mostly writing C with an extension of .cpp. <grin>) char *packageName = "nutshell_1b.rex"; ... if ( RexxCreateInterpreter(&interpreter, &threadContext, options) == 0 ) exit ... RexxPackageObject nutshellPkg = threadContext->LoadPackage(packageName); if ( nutshellPkg == NULLOBJECT ) { if (threadContext->CheckCondition()) { print out some stuff } exit on error } continue ... The nutshell_1b.rex has a couple of class definitions and a routine definition. I then basically do routineObj = get routine object from pkg classObj = get class object from pkg obj = classObj instantiate RexxObjectPtr result = threadContext->CallRoutine(routineObj, NULL); do something with obj As long as the code in the in the file nutshell_1b.rex is good, everything works fine. But if I put this in the file: say 'mathRound:' 3/0 I expected to get a condition object. Instead I get a crash where the C run time prints out: This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. If I run a regular Rexx program that looks like this: say 'In qtest' ::requires "nutshell_1b.rex" I get this: C:\work.ooRexx\other\examples\4.0.examples>qtest.rex 3 *-* say 'mathRound:' 3/0 4 *-* ::requires "nutshell_1b.rex" Error 42 running C:\work.ooRexx\other\examples\4.0.examples\nutshell_1b.rex line 3: Arithmetic overflow/underfl ow Error 42.3: Arithmetic overflow; divisor must not be zero I sort of see why, the qTest.rex program has an extra RexxActivation::run(). It hits this loop: /* loop to the top of the stack */ while (activation != OREF_NULL && !activation->isStackBase()) { enters it, and gets thrown to this catch catch (RexxNativeActivation *) { } in RexxActivation::run() On the other hand, the C++ program hits the while loop and never enters it. Instead it hits this->kill() where the UnhandledCondition exception is thrown and never caught. And then I'm stumped. Is this a fixable bug? Something that nothing can be done about? Or, I'm using the APIs wrong? -- Mark Miesfeld ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel