Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!quanta.eng.ohio-state.edu!kcgl1.eng.ohio-state.edu!JONESD
From: JONESD@kcgl1.eng.ohio-state.edu (David Jones)
Newsgroups: comp.windows.x
Subject: Re: DECwindows under VMS
Message-ID: <3142@quanta.eng.ohio-state.edu>
Date: 29 Sep 89 13:18:07 GMT
References: <7098@stiatl.UUCP>
Sender: news@quanta.eng.ohio-state.edu
Organization: Ohio State University
Lines: 28

In article <7098@stiatl.UUCP meo@stiatl.UUCP (Miles O'Neal) writes:
> This will work for VMS, and any other systems with something like the
> DEC Procedure Calling Standard. You just need a C routine that
> return()s the value you want. Then you can call the routine from FORTRAN
> just as if it were a FORTRAN routine.

Yes, it will work, but in lots of cases the argument types required by the
C language binding (e.g. zero terminated ascii strings) are cumbersome to use
in other languages.  DEC therefore made an alternate binding for all the
xlib and toolbox routines, converting the names to VMS convention
(XCapitalizedRoutineName -> X$CAPITALIZED_ROUTINE_NAME) and the arguments
to their Runtime Library conventions (strings by descriptor, others by
reference).

Before I purchased the DECWindows programming documentation, the only
way to figure out how to use the VAX/VMS bindings was to read description
in the Ultrix documention and compare it with the synopsis of the
equivalent routine in the include file sys$library:decw$xlib.for or
sys$library:decw$dwtlibdef.for.  Lots of times you'd have to make some
shrewed guesses as to how the arguments mapped in order to get that
method to work though.

David L. Jones               |      Phone:    (614) 292-6929
Ohio State Unviversity       |      Internet:
1971 Neil Ave. Rm. 406       |               jonesd@kcgl1.eng.ohio-state.edu
Columbus, OH 43210           |               jones-d@eng.ohio-state.edu

Disclaimer: A repudiation of a claim.