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.

Reply via email to