You might want to consider looking into CEEPIPI, which allows you to initialize an LE 'umbrella' from a non-LE conforming program and then control the execution of main programs, subprograms, dlls, etc. underneath.
It is documented in chapter 30 of the LE Programming Guide. HTH, Mike ________________________________ From: IBM Mainframe Assembler List <[email protected]> on behalf of Joseph Reichman <[email protected]> Sent: Wednesday, July 3, 2019 4:52 PM To: [email protected] Subject: Re: C DLL Code from Assembler Well there is the first #ifdef > On Jul 3, 2019, at 4:29 PM, John Melcher > <[email protected]> wrote: > > There isn't. You must instantiate Language Environment by either making your > Assembler Language routine the main() or calling it from a LE enabled "main". > > void main(char * parm) > { > Int rc; > rc = Asmfunc(); > } > > -----Original Message----- > From: IBM Mainframe Assembler List [mailto:[email protected]] > On Behalf Of Joseph Reichman > Sent: Wednesday, July 3, 2019 2:51 PM > To: [email protected] > Subject: Re: C DLL Code from Assembler > > *** External email: Verify sender before opening attachments or links *** > > > I saw reference to DLL's in the XL C bookshelf > > Unlike Windows there doesn't seem to be a DLLMAIN function > > Thanks > > > > >>> On Jul 3, 2019, at 3:46 PM, Tony Harminc <[email protected]> wrote: >>> >>> On Tue, 2 Jul 2019 at 17:24, Joseph Reichman <[email protected]> wrote: >>> >>> I am hoping to have the Assembler Started task code call a C DLL, On >>> the Windows end it would be C/C+ code calling the DLL obviously there >>> are differences because of the platform but I am guessing hose call >>> be handled by #IFDEF >>> >>> In Windows Loading the DLL is a LoadLibrary Api then GetProcAddress >>> to get the exports >>> >>> I am not sure how to do this in Assembler is there a LoadLibrary >>> Macro or a GetProcAddress macro to call the exported function >> >> DLLs are discussed in the LE book _Language Environment Programming >> Guide_ in Chapter 4. Most of the examples and discussions are about C, >> but there are some brief assembler bits. And there is a discussion of >> assembler considerations (not just for DLLs) in Chapter 29, including >> the various macros you need. >> >> To be clear, HLASM *is* explictly a supported language for both >> writing and invoking DLLs under LE. See "Support for DLLs" at the very >> start of Chapter 4. >> >> I haven't played with this for many years, and am not current, but >> other people on this list have written about it - maybe John McKown? >> And there was the Trainer's Friend guy (Steve Comstock?), who gave >> courses on this and related LE matters. He made his course materials >> available for sale when he closed the business. Maybe they are still >> out there? Ah - I see some of it is now on Amazon. Not free, but maybe >> a good deal. >> http://TOC.ASG.COM:8080/?dmVyPTEuMDAxJiY1NDU1NmVlYzI3Nzk4NzhlZT01RDFEMDcxOV85OTE1N185NjNfMSYmNTBjMjY5NGQ5NGMxYTRlPTEyMzImJnVybD1odHRwJTNBJTJGJTJGd3d3JTJFdHJhaW5lcnNmcmllbmQlMkVjb20lMkZ6T1MlMkVzaHRtbA== >> I have no connection, etc... >> >> Tony H.
