从c++调用RPG过程
Calling RPG procedure from C++
我正忙于IBM I上的一个c++项目,并试图调用服务程序中的一个RPG过程,但我不确定如何做到这一点。
我只在互联网和文档中找到示例,显示如何通过定义如下来调用RPG程序(*PGM)对象:
extern "OS"
{
void RPGPROGRAM(void);
}
int main()
{
RPGPROGRAM();
return 0;
}
文档说他们调用RPG"过程",但如果你看一下实际的源代码,它只是一个RPG程序(*PGM)对象,他们从c++内部使用#pragma map
调用。
假设我有以下RPG服务程序(命名为RPGSP),其中定义了一个名为rpg_doSomething
的过程:
ctl-opt nomain;
dcl-proc rpg_doSomething export;
dcl-pi *n int(10);
dcl-parm p_test char(20);
end-pi;
p_test = "It Works!!";
return 1;
end-proc;
在我的c++程序中,我应该如何声明和调用上面的过程?我试过在extern
块内声明它,但它最终在运行时寻找rpg_doSomething
对象,找不到它。我也试过在编译时将服务程序绑定到c++程序,但这也不起作用。
首先您使用的是哪个c++编译器?
本机ILE ?那就很简单了。我很确定你只需要:extern "RPG"
上的函数声明。
还是PASE中的AIX ?然后看一下调用ILE过程
需要注意的一点是,RPGLE不区分大小写,默认情况下使用大写名称。而C/c++是区分大小写的。您的c++程序需要调用RPG_DOSOMETHING
,或者您需要使用EXTPROC('rpg_DoSomething')
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 是否删除在对象构造过程中创建的对象
- 如何在鼠标挂钩过程中检测拖动
- 此测试()中发生了什么意外过程?为什么总是覆盖 ch[0 1 2..]?
- clang 插件:在编译过程中修改 AST
- 如何使变量从 x 到 y,然后从 y 返回到 x 并始终重复该过程
- 在C++中调用 MS SQL 存储过程
- 阻塞信号会导致升压过程不起作用
- 在为我的基于文本的 RPG 游戏制作库存时遇到困难
- Adafruit 羽毛RFM69HCW在使用过程中会冻结,需要硬重置
- 文本 RPG - 使用函数检查有效的输入
- 使用提升过程获取 shell 命令的标准输出
- 附加到 gdb 会中断并且不会继续该过程
- 如何创建始终在线的过程?
- C++ - 为文本RPG创建基本战斗功能
- 使用 Qt 测量过程的实际运行时间
- 如何在窗口过程方法中检测击键?
- 线程过程中的线程同步问题
- MySQL 连接器/C++.尝试在此过程中停止连接到数据库
- 从c++调用RPG过程