5

我已经看到很多地方可以使用导出/导入关键字在 Ada/C/C++ 之间进行通信。如果 Ada 函数是泛型的呢?这甚至可能吗?

我的问题是我需要重用一些遗留代码,而且我们有许多通用的 Ada 函数。即将到来的新层将用 C++ 编写,我希望能够将这些现有的 Ada 泛型函数导出到 C++ 包装器。(实际上,如果函数不是全局的,我将需要另一层,但现在不要介意。)

如果不可能,我只需要创建特定于不同类型的新的单个 Ada 函数,这些函数又调用泛型。对这种方法有什么想法吗?

我绝对是 Ada 编程的菜鸟,所以请原谅我的无知。谢谢您的帮助。

4

2 回答 2

4

编写一个小的 Ada 包,其规范包含导出的子程序,其主体使用§B.3 与 C 和 C++ 接口中可用的类型实例化这些子程序。不要忽视在 C 方调用adainit()adafinal()。更多在这里

于 2012-04-27T00:10:21.830 回答
-2

我对 Ada 不熟悉,但是您应该能够调用导出的函数(假设 Ada 编译器没有做太不正常的事情)。您应该尝试转储 Ada 目标文件(编译结果)以检查函数名称。

于 2012-04-26T18:34:11.723 回答