TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: Murray Lesser
from: Phil Crown
date: 1996-04-09 17:35:38
subject: Making REXX .DLL`s

-=> Quoting Murray Lesser to Phil Crown <=- 

 ML> Excerpted from message dated 04-07-96, Phil Crown to All:
 
 ML> I use a different technique that doesn't involve RxFuncDrop.  I
 ML> run two separate (full-screen) text-mode sessions when writing and
 ML> testing REXX external function DLLs.  "Compiler sessions"
are started
 ML> from the desktop icon for the compiler I am using; it executes a CMD
 ML> file to set up the environment for that compiler ("set

Good idea.  I'll give it a try.

 ML> I write my REXX external function DLLs with CSet++ (v 2.01) from
 ML> the command line (multitasking to call my text-mode editor) rather than
 ML> working from an "Integrated Development Environment." 
This technique
 ML> may not work if you compile from Borland's IDE, but I think it should.
 ML> I assume the important matter is that the "driver" session be a
 ML> full-screen command-line OS/2 "window," so it is independent of any
 ML> other sessions that may be running on the system.

 ML> Try it.  You may like it.  IMO, RxFuncDrop is a dangerous command,
 ML> and I avoid it if at all possible.

RxFuncDrop is very dangerous for my .DLL too.  I am writing a REXX .DLL
for semaphore handling, which is proving to be trickier than it first
appeared.  Keeping track of the handles to the semaphores is the
trickiest part.  One call to RxFuncDrop and they're all gone!  I am
keeping the handles as global variables in the .DLL itself, which seems
to be safer than have them in the REXX *.cmd.  If the REXX file aborts
with a syntax error, the semaphore stays alive until the session is
closed, which seems to kill it.

I've noticed some more strangeness writing REXX .DLL's.  For example, if
I add any new functions to the source and .DEF file to be exported, it
doesn't matter how many windows I close, I still must reboot *and*
recompile.  If I don't, when testing the .DLL the 'call ...LoadFuncs'
line always fails.

At least now I know what I have to do, this was driving me nuts before.

I'll try your method and see how it works here.

Thanks!

Phil
Fido:  1:124/8014.1 | Internet:  phil.crown{at}bluecafe.com


--- Blue Wave/OS2 v2.30
* Origin: * MacSavvy OS/2 BBS * Dallas, Texas * 214-250-4479 * (1:124/1208)
SEEN-BY: 50/99 78/0 270/101 620/243 711/401 409 410 413 430 808 809 934 955
SEEN-BY: 712/407 515 517 628 713/888 800/1 7877/2809
@PATH: 124/1208 1 396/1 270/101 712/515 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.