Good News Everybody!
The new search engine is LIVE!
Please report any problems to david (at) midrange.com.
|
Hi James,
> I've got a problem with ILE RPG calling a procedure in ILE C. It seems
> that the return value (a character string of 4096 bytes) is being set
> properly in the C code (according to the dreaded ILE debugger), but it
> arrives completely blank in RPG (also according to the debugger). Is there
> something I need to do in the prototype for the procedure, so that RPG can
> find the return value?
Usually problems like this show up when you return a pointer from a C
function, but write your RPG prototype as if you were returning a string.
For example, if you have a C function like this:
char *getstring(int key);
The RPG prototype must look like this:
D getstring PR * ExtProc('getstring')
D key 10I 0 value
And then you call it like this:
C eval myString = %str(getstring(key))
I have a feeling that your RPG prototype looks like the following, which
will NOT work, unless the C function returns a data structure by value:
D getstring PR 4096A
D key 10I 0 valu
If this is not the case, then please show us what your prototypes look like,
and if possible a little bit of the code, since you didn't give us much
information about how the data is being passed...
This mailing list archive is Copyright 1997-2026 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].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.