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.