我一直在使用Progress 4GL程序和从共享库调用的C函数之间的一些交互。
我需要编写一个新函数并将其添加到SL中,所以我的问题是:
Progress可以接收从SL C函数返回的值吗?
类似的东西:
Progress_data_type var = SLInvoked_function(...);
如果可以,有人能指出我正确的语法或参考手册吗?
答案 0 :(得分:3)
以下代码显示了调用putenv()的示例。返回值的关键是“define return parameter”行。
define variable x as integer no-undo.
procedure putenv external "/lib64/libc.so.6":
define input parameter env as character.
define return parameter x as long.
end.
display os-getenv( "XYZZY" ).
pause.
run putenv( "XYZZY=pflugh", output x ).
display os-getenv( "XYZZY" ).
os-command value( 'echo "$XYZZY"' ).
return.
有关详细信息,请查看UNIX Shared Libraries