Hi, I thought I had pointers sussed, but it seems not. Hope someone can help.
I'm calling program B from program A via a router program with a pointer in and out as parameters.
I've debugged and I can see that program B receives a value *NULL for the output parameter pointer. It initialises the pointer, it is returned to the router OK, but once back in the calling program A, if I do EVAL on the pointer, I get CPF8E17, Pointeur non défini pour l'emplacement référencé. ( would someone give me the English version of that message? ).
Then, when I try and use the DS based on the pointer, it says I'm trying to access something that no longer exists (MCH3402). I wonder if the problem is not the pointer but the fact that the router program has ended?
I've already successfully tested program B, using a test program to call it directly, now I'm testing with the router.
Thanks.
1 .My Calling program (A)
IF NOT ExcRouter (
'My program to call' :
AnErrMg :
wPtr_in :
wPtr_out
);
RETURN *OFF;
ENDIF;
Procedure ExcRouter
Callp routerpgm (
APgmId :
AnErrMg :
Aptr_in :
Aptr_out
);
2 .Extract from routerpgm
SELECT;
WHEN %PARMS > 3;
Trt03 (
APtr_In :
APtr_Out :
AnErrMg
);
WHEN %PARMS > 2; .....etc
D Trt03 PR EXTPGM ( APgmId )
D APtr_In * OPTIONS ( *OMIT ) CONST
D APtr_Out * OPTIONS ( *OMIT )
D AnErrMg LIKE ( DFN_ERRMG )
As an Amazon Associate we earn from qualifying purchases.