1

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

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

Xadd(int x, int y);

并希望像这样在 APL 中编写它,Xadd (x) (y)并且以后能够通过 APL 使用∇Xadd. 谢谢。

4

2 回答 2

1

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

于 2014-08-07T11:25:00.677 回答
1

如果您从 APL 调用 CPP 函数,我不太明白,反之亦然。而且您没有指定要编码的 APL 风格,但您可能想查看以下概念:

  • 共享变量:⎕SVO
  • 辅助处理器
  • 调用编译程序:⎕NA
    • 查看 System Services Reference: LINK for IBM APL2/370 中的第 28 章。
于 2014-07-18T12:30:18.550 回答