忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT HPC论坛 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 1289 | 回复: 6

rpg pgm 调用C pgm 返回值问题求教omo~ [复制链接]

论坛徽章:
0
发表于 2017-12-01 19:32 |显示全部楼层
用rpg pgmA call c pgmB   
如何能将B中的值传递回给A?有什么办法可以做到?  求大神指点~~~~

pgmA
*                                                
C                   CALL(E)   'TESTC'            
C                   PARM                    RC   
*                                                
C                   IF        %error              
C     1             DSPLY                        
C                   ENDIF                        
C*                                                
C                   MOVE      *ON           *INLR
C                   RETURN                        


pgmB
#include <stdio.h>                           

int main(argc, argv)                          
int argc;                                    
char ** argv;                                 
{                                             
      int temp = 666 ;//有什么方法能将temp返回给A程序?      

   return 0 ;                                 
}                                             

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
发表于 2017-12-01 22:17 |显示全部楼层
C程序一定要是PGM吗?如果编译成MODULE,可以直接写成普通函数,就能传任意参数了。

论坛徽章:
0
发表于 2017-12-05 19:22 |显示全部楼层
回复 2# pacman2000
能举个例子么   我如下方式写  还是得不到
----------------------------------------------
Program:   TESTRPG        Library:   LIBKWPT        Module:   TESTRPG         
      1       D RC              S              1A   INZ('A')                    
      2       D R               S              1A                              
      3       D                                                                 
      4       D TESTC           PR                  EXTPROC('TESTC')            
      5       D RETURNCODE                     1A                              
      6       D                                                                 
      7        /free                                                            
      8                           TESTC(RC) ;                                   
      9        /end-free                                                        
     10       C                   dsply                   RC                    
     11       C                   dsply                   R                     
     12       C                                                                 
     13       C                                                                 
     14       C                   SETON                                         
     15       C                   RETURN                                       
                                                                         Bottom
Debug . . .                                                                    

F3=End program   F6=Add/Clear breakpoint   F10=Step   F11=Display variable     
F12=Resume       F17=Watch variable   F18=Work with watch   F24=More keys      
RC = 'A'                     
-------------------------------------------------------
     2                                                     
     3  char TESTC(char rc)                                
     4  {                                                  
     5                                                     
     6    printf("return code:%s" , rc) ;                  
     7                                                     
     8    rc = 'R' ;                                       
     9                                                     
    10    printf("return code:%s" , rc) ;                  
    11                                                     
    12     return rc;                                      
    13  }                                                  
---------------------------------------------------------------                                                                                                            

论坛徽章:
0
发表于 2017-12-05 19:23 |显示全部楼层
回复 2# pacman2000
能举个例子么   我如下方式写  还是得不到
----------------------------------------------
Program:   TESTRPG        Library:   LIBKWPT        Module:   TESTRPG         
      1       D RC              S              1A   INZ('A')                    
      2       D R               S              1A                              
      3       D                                                                 
      4       D TESTC           PR                  EXTPROC('TESTC')            
      5       D RETURNCODE                     1A                              
      6       D                                                                 
      7        /free                                                            
      8                           TESTC(RC) ;                                   
      9        /end-free                                                        
     10       C                   dsply                   RC                    
     11       C                   dsply                   R                     
     12       C                                                                 
     13       C                                                                 
     14       C                   SETON                                         
     15       C                   RETURN                                       
                                                                         Bottom
Debug . . .                                                                    

F3=End program   F6=Add/Clear breakpoint   F10=Step   F11=Display variable     
F12=Resume       F17=Watch variable   F18=Work with watch   F24=More keys      
RC = 'A'                     
-------------------------------------------------------
     2                                                     
     3  char TESTC(char rc)                                
     4  {                                                  
     5                                                     
     6    printf("return code:%s" , rc) ;                  
     7                                                     
     8    rc = 'R' ;                                       
     9                                                     
    10    printf("return code:%s" , rc) ;                  
    11                                                     
    12     return rc;                                      
    13  }                                                  
---------------------------------------------------------------

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
发表于 2017-12-05 22:13 |显示全部楼层
     2                                                     
      3  void TESTC(char* rc)                                
      4  {                                                  
      5                                                     
      6    printf("return code:%1.1s\n" , rc) ;                  
      7                                                     
      8    rc[0] = 'R' ;                                       
      9                                                     
     10    printf("return code:%1.1s\n" , rc) ;                  
     11                                                     
     12     return rc;                                      
     13  }                                 

论坛徽章:
0
发表于 2017-12-06 10:57 |显示全部楼层
回复 5# pacman2000

感谢    可以了   感谢帮忙指点  辛苦辛苦

论坛徽章:
5
2015亚冠之阿尔艾因
日期:2015-08-10 02:23:34操作系统版块每日发帖之星
日期:2015-08-13 06:20:002015七夕节徽章
日期:2015-08-21 11:06:1715-16赛季CBA联赛之山西
日期:2016-04-13 02:36:59操作系统版块每日发帖之星
日期:2016-04-14 06:20:00
发表于 2017-12-06 13:10 来自手机 |显示全部楼层
gcsdymk 发表于 2017-12-06 10:57
回复 5# pacman2000

感谢    可以了   感谢帮忙指点  辛苦辛苦

额,返回值类型改成void,因此最后的return不需要了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP