Short: Use ANY shared library within Arexx progs Author: Ivan Sturlic Uploader: Ivan Sturlic fer hr (Ivan Sturlic) Type: util/rexx Architecture: m68k-amigaos ----------------------------------------------------------------------------- ROYAL BRIDGE v1.1 Copyright (c) 1998, Ivan Sturlic ----------------------------------------------------------------------------- royalbridge.library version 34.31 (31 Oct 1998) royalbridge.library is an Arexx external function library which acts as a bridge to any Amiga shared library. To call the library function royalbridge.library needs to know the library base, function offset and information about which processor registers to use for function arguments. To make coding much easier you can use the Royal Bridge Arexx Preprocessor which is also included. Arexx preprocessor requires a C compiler which will be used to access C include files. From this version it is also possible to call a shared library function in a very simple way without using preprocessor. Example: call rbCall('$graphics.library $Text',rp,'$Royal Bridge',12) When using Arexx preprocessor you write an .app file which is nothing else but normal Arexx program with some preprocessor commands which will be replaced by real things in final .rexx file. For example, to call the exec.library/AllocVec() function you would write: #call 0 bmap = AllocVec(#{sizeof(struct BitMap)},#{MEMF_CLEAR}) This line would be replaced by preprocessor and would look like: bmap = rbCall(0 || ' 2ac 1002',40,65536) CURRENT LIMITATIONS ------------------- - It is not possible to call a library function which uses an a5 register for its argument - Won't work with floating point arguments HISTORY ------- - 31 Oct 1998 ----------- Version 1.1 (royalbridge.library 34.31) - new very simple ways of calling a shared library function - rbCall() accepts Arexx strings - auto opening/closing of libraries - new utility MakeRB - 26 Apr 1998 ----------- First public release