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

Reply via email to