Ok, I have to bite the bullet and ask the list. I'm having a problem passing a CL variable into a 3i0 RPGLE parameter.

Procedure prototype:
D $ReadSettingP PR 10i 0 ExtProc( *CL: '$READSETTINGP')
D ReadMethod 3i 0 Const
D NumberOfKeys 3p 0 Const
D LockRec n Const


The ReadMethod in the RPG procedure is constantly receiving a value of 0, and I'm trying to pass in a value of 2.

I've tried:
CALLPRC PRC($READSETTINGP) PARM((2) +

DCL VAR(&READE) TYPE(*INT) LEN(2) Value(2)
CALLPRC PRC($READSETTINGP) PARM((&READE) +

DCL VAR(&READE) TYPE(*DEC) LEN(3 0) Value(2)
CALLPRC PRC($READSETTINGP) PARM((&READE) +

I also found an article that suggested doing the following, but as far as I can tell the PARM keyword for CALLPRC does not allow built in functions.
DCL VAR(&READE_INZ) TYPE(*DEc) LEN(3 0) VALUE(2)
DCL VAR(&READE) TYPE(*CHAR) LEN(4)
CHGVAR VAR(%BIN(&READE)) VALUE(&READE_INZ)
CALLPRC PRC($READSETTINGP) PARM(%BIN(&READE) +


Does anyone have any ideas? Most of what I find about CLLE to RPGLE issues is in regard to RTNVAL.

I have ExtProc on the procedure above as me trying anything to get this to work. And some archive posts made it seem like I needed it anytime a procedure is dealing with a 1-byte value, however the help says: "Use *CL if your program uses return values with data types that CL handles differently from RPG." So I'm guessing it's use here is unneeded.

Thanks a lot,

Kurt Anderson
Sr. Programmer/Analyst
CustomCall Data Systems

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].