跨平台的C ++函数到APL

时间:2014-07-17 20:30:20

标签: c++ function apl interfacing

我目前正在为APL编写C ++程序。到目前为止,我一直在做的是在APL中创建一个函数,该函数运行命令提示符并调用可执行文件,其中输入和输出文件作为参数创建,反过来,C ++可执行文件被编程为打开输入文件,读取输入并将输出存储在输出文件中,输出文件由APL函数提取并存储在一个或多个变量中。这种方法的问题在于,当我使用更简单的函数时,这些函数将被大量调用或者有时会递归调用,为简单计算而一直打开和关闭文件会占用大量的处理时间。我想要找到的是一种方法来调用一个用C ++编写的函数,无论是从解决方案还是从库中,直接在我的APL工作区中使用它。

例如,我在C ++中有一个以这种形式编写的函数:

Xadd(int x, int y);

并且希望像此Xadd (x) (y)一样在APL中编写它,然后能够使用∇Xadd通过APL打开它。感谢。

2 个答案:

答案 0 :(得分:1)

如果你从APL调用CPP功能,反之亦然,我不太明白。并且您没有指定您正在编码的APL风格,但您可能想要查看这些概念:

  • 共享变量:⎕SVO
  • 辅助处理器
  • 调用已编译的程序:⎕NA
    • 查看系统服务参考中的第28章:LINK以获取IBM APL2 / 370。

答案 1 :(得分:1)

我首先在具有单个入口点的DLL中编译Xadd函数,然后使用[] NA进行实验。一个有用的垫脚可能是首先使用VBA在Excel(或Word或任何其他使用VBA的MS Office应用程序)中使用DLL调用,然后转到APL。