Under Windows, the current version of BSF4Rexx (2008-09-12) does not work with ooRexx 4.0. BSF4Rexx.dll is not loaded because it depends on these functions which are no longer exported by rexx.dll : RexxWaitForTermination RexxDidRexxTerminate
I recompiled BSF4Rexx without these dependencies (is it safe to do that ?) An other problem occurred : call rxFuncAdd "BsfLoadFuncs", "BSF4Rexx", "BsfLoadFuncs" fails, because ooRexx 4.0 searches for "BsfLoadFuncs" and does not find it (it's "BSFLOADFUNCS" which is exported). Easy to fix, use call rxFuncAdd "BsfLoadFuncs", "BSF4Rexx", "BSFLOADFUNCS" (4.0 is more strict than 3.2, other external packages may need this kind of adjustment) Now, infoBSF.rex and infoBSF-oo.rex works. During my trials and errors, I had several times the script infoBSF.rex frozen during initialization. Maybe the problem comes from rxapi.exe. RegistrationData::findSessionReference in RegistrationManager.cpp, I think this line is missing : cookie = cookie->next Here are the changes I made to BSF.cc (all are fixes for compilation errors due to changes in rexx.h) : ------------------------------------------- 315a316,320 > #define TID thread_id_t > #define APIRET RexxReturnCode > #define PFN REXXPFN > APIRET APIENTRY RexxDidRexxTerminate(void) {return 1;} > 2666c2671 < const char *str=JNU_GetStringNativeChars(a_JRST, ReturnValue); // rgf, 2006-01-22 --- > char *str=JNU_GetStringNativeChars(a_JRST, ReturnValue); // rgf, 2006-01-22 2903c2908 < RexxWaitForTermination(); // wait for Object Rexx to re-synch ... (2003-02-25, ---rgf: doesn't really have any effect --- > // RexxWaitForTermination(); // wait for Object Rexx to re-synch ... (2003-02-25, ---rgf: doesn't really have any effect 3198c3203 < const char *tmpString=JNU_GetStringNativeChars(a_JRST, javaStr); // rgf, 2006-01-28 --- > char *tmpString=JNU_GetStringNativeChars(a_JRST, javaStr); // rgf, 2006-01-28 3244c3249 < (PUCHAR) rsbarr // user data for this exit instance --- > (const char *) rsbarr // user data for this exit instance 3280c3285 < (PRXSTRING) argList, // PRXSTRING ArgList --- > (PCONSTRXSTRING) argList, // PRXSTRING ArgList 3318c3323 < RexxWaitForTermination(); // wait for ooRexx to terminate (may have threads concurrently running) --- > // RexxWaitForTermination(); // wait for ooRexx to terminate (may have threads concurrently running) 3670c3675 < (PUCHAR) user_info); --- > (char *) user_info); -------------------------------------------
------------------------------------------------------------------------------
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel