I got a little question and I can't try it out because we don't have 7.1 yet.
I got an RPG program which gets a pointer from a C procedure of a service program. The service program has been compiled with the following options:
stgmdl(*teraspace) dtamdl(*llp64) enum(*int)
The C service program runs in its own activation group (named)
The RPG program is an ILE RPG program (teraspace enabled by default) and runs in the default activation group.
It seem that I can get a pointer from the C procedure to my RPG program but not use the pointer stored in my RPG program in another C procedure of that module.
My guess is the following:
Fact: The pointers in the C modules have a size of 8 bytes (necessary because of some code). The pointers in my RPG program have a size of 16 bytes.
Guess: Because of the different pointer size these programs are incompatible. I hoped that the system would somehow transform the 16 byte pointer (which really only stores the 8 byte previously received) and convert it to an 8 byte pointer. But it seems that it does not do this.
I get the errors MCH6902, MCH0601, MCH3203.
Now I have just read that in 7.1 RPG modules can be compile with the storage model *teraspace. Does that mean that the pointer in RPG will also be 8 byte and that the calling to the procedure might work with 7.1 because it is the same storage model?
Thanx in advance.
Dirk Rossmann GmbH
* +49 (05139) 898 - 4353
Handelsregister-Nr. HRB 120546, Amtsgericht Hannover
Ust-Id-Nr. DE 115055186
St.-Nr. 16 / 205 / 65401
Geschäftsführer: Dirk Roßmann, Alice Schardt-Roßmann, Roland Frobel, Klaus Praus
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 here. If you have questions about this, please contact