我可以在Ada中使用普通dll或其他语言包吗?

我可以在Ada中使用普通dll或其他语言包吗?,dll,package,ada,Dll,Package,Ada,目前,我正在使用一个硬件,为我提供一个来自DLL的软件包。他们还提供不同语言(java、C++和python)的包,它们都是从DLL中提供的功能,所以我用java编写我的应用程序。我想改用Ada,但我不知道如何使用该公司提供的DLL函数或其他语言的软件包。有办法吗 我知道我可以从DLL中提取函数名,但我不知道如何将其转换为Ada包,或者我是否可以以任何方式使用其他语言制作的包。懒惰的答案只是“是”。-) 关于该主题的GCC文件如下: 正如它所说的,您还需要一个Ada规范,用于您想要使用的DLL中

目前,我正在使用一个硬件,为我提供一个来自DLL的软件包。他们还提供不同语言(java、C++和python)的包,它们都是从DLL中提供的功能,所以我用java编写我的应用程序。我想改用Ada,但我不知道如何使用该公司提供的DLL函数或其他语言的软件包。有办法吗

我知道我可以从DLL中提取函数名,但我不知道如何将其转换为Ada包,或者我是否可以以任何方式使用其他语言制作的包。

懒惰的答案只是“是”。-)

关于该主题的GCC文件如下:


正如它所说的,您还需要一个Ada规范,用于您想要使用的DLL中的函数。您可以手动编写,也可以在C或C++头文件上使用<代码> Gcc-fDUP艾达规范<代码>自动生成。生成的规范并不总是漂亮的,但它们比您自己从头开始编写的规范更可能是正确的。

欢迎使用SO,请四处看看,看看如何提出正确的问题。谢谢,我想这是更具体的,现在有几个问题和答案在Ada部分,因此,与接口语言与Ada。大多数情况下,DLL接口都与C兼容。在这种情况下,DLL接口的Ada规范的编写(即对于DLL
foo.DLL
,write
foo.ads
)通常可以使用
interface.C
包及其子包来完成。您可以在此处或直接在接口中找到有关其用法的提示。C源代码:最好使用
g++-fdump ada spec
(保留更多信息,如参数名称)谢谢,我将尝试生成规范