× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




Hi Jevgeni,

Since you are calling a program object you want to use 'extern "OS"'
instead of 'extern "RPG"'. It doesn't matter what language a program
object is written in, the calling convention for a program call is always
'extern "OS"'. 'extern "RPG"' is for calling a service program entry point
or an export from a module that is bound into your program.

Thanks,

Aaron Albertson
CUBE-3 WCode/NMI translator development,
OX Translator Development, and MI Architecture owner
Dept. 47W 030-2/E102, IBM Rochester, MN 55901
albertaa@xxxxxxxxxx
(507) 253-5173, T/L 8-553-5173




From: Jevgeni Astanovski <jevgeniast@xxxxxxxxx>
To: "Bare Metal Programming IBM i (AS/400 and iSeries)"
<c400-l@xxxxxxxxxxxx>
Date: 12/19/2014 06:59 AM
Subject: [C400-L] Calling RPGILE program from C++
Sent by: "C400-L" <c400-l-bounces@xxxxxxxxxxxx>



Hi, folks.
There was a similar discussion recently, but for C.
I know how to call an RPG program from my C program.
I write
....
#pragma map(RetrSC, "RSC10R")
#pragma linkage(RetrSC, OS)
void RetrSC (char *, char *, scpf *, char *) ;

main()
{
...
RetrSC(Key, "CHAIN", &Account, &Ind).

}

works fine.

Decided to experiment with C++
Manual says that #pragma linkage is not supported.
In an example I found that it should look like this:

#pragma map(RetrSC, "RSC10R")
extern "RPG" void RetrSC (char *, char *, scpf *, char *) ;

main()
{
...
RetrSC(Key, "CHAIN", &Account, &Ind).

}

RSC10R is not a service program, just a *PGM object.
Create module works fine, however CRTPGM generates CPD5D02:
No definition was found for reference RSC10R in *MODULE

What should I do to be able to call an RPG program from C++ the same
way I do it from C?

I believe that it should be pretty simple, but I've already spent 3
hours searching in the manuals and googling....

TIA,

Jevgeni.
--
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L)
mailing list
To post a message email: C400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/c400-l
or email: C400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/c400-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

This mailing list archive is Copyright 1997-2024 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.