PDA

View Full Version : CLLE per Protopyp einbinden/Aufrufen



AndreasH
30-06-04, 16:30
Hi Forum,
manchmal sieht man den Wald vor Bäumen nicht, heute ist wieder so ein Tag...
einfaches CLLE


PGM PARM(&OBJ &OBJTYPE &OBJTEXT &ERROR)
DCL VAR(&OBJ) TYPE(*CHAR) LEN(10)
DCL VAR(&OBJTYPE) TYPE(*CHAR) LEN(10)
DCL VAR(&OBJText) TYPE(*CHAR) LEN(50)
DCL VAR(&Error ) TYPE(*CHAR) LEN(1)
CHGVAR VAR(&ERROR) VALUE('0')
RTVOBJD OBJ(&OBJ) OBJTYPE(&OBJTYPE) TEXT(&OBJTEXT)
MONMSG MSGID(CPF0000) EXEC(CHGVAR VAR(&ERROR) +
VALUE('1'))
ENDPGM

Das ganze als *MOD umgewandelt und ins BNDDIR gestellt.

möchte ich per Prototype in RPGLE einbinden


* PROTOTYPE Retrieve Objecttext
D P#RTVOBJT PR
D Object 10A VALUE
D ObjType 10A VALUE
D ObjText 50A VALUE
D E#ERROR 1N
*
C CALLP P#RTVOBJT(PROJECT:'*LIB':D#PRXTXT:E#ERROR)

Nach Aufruf gibt es dann aber leider den berühmten MCH3601 und im CL kommen keine Parameterwerte an.
Kann mir bitte jemand nen Stups geben, wo mein Denkfehler liegt?
Danke

Fuerchau
30-06-04, 16:34
CLP/CLLE dürfen nicht per VALUE aufgerufen werden. Es können aber trotzdem Konstanten übergeben werden. Diese werden dann in Zwischenvariablen abgestellt.

AndreasH
30-06-04, 17:25
Danke Fuerchau, das Value war's.
Leider spuckt der compler beim check auf die Konstante,

RNF7542 30 Parameter 2 ist als ein durch Referenz übergebener
Parameter ungültig.

Aber eine initialisierte Variable funktioniert halt einwandfrei und läßt sich beim debuggen wenigstens anzeigen.

Problem erledigt