5

export/importキーワードを使用してAda/C /C++間の通信が可能な場所を数多く見てきました。Ada関数が汎用の場合はどうでしょうか。これも可能ですか?

私の問題は、いくつかのレガシーコードを再利用する必要があり、多数の汎用Ada関数があることです。今後登場する新しいレイヤーはC++で記述され、これらの既存のAdaジェネリック関数をC++ラッパーにエクスポートできることを望んでいます。(実際、関数がグローバルでない場合は、別のレイヤーが必要になりますが、今は気にしないでください。)

それが不可能な場合は、さまざまなタイプに固有の新しい個別のAda関数を作成する必要があります。これにより、ジェネリックが呼び出されます。このアプローチについて何か考えはありますか?

私は間違いなくAdaプログラミングの初心者なので、無知を許してください。助けてくれてありがとう。

4

2 に答える 2

4

仕様にエクスポートされたサブプログラムが含まれ、本体が§B.3 C および C++ とのインターフェースで使用可能なタイプを使用してそれらのサブプログラムをインスタンス化する小さな Ada パッケージを作成します。C側のコールadainit()とコールを怠らないでください。adafinal()詳細はこちら

于 2012-04-27T00:10:21.830 に答える
-2

私は Ada に詳しくありませんが、エクスポートされた関数を呼び出すことができるはずです (Ada コンパイラがそれほどひねくれた動作をしないと仮定して)。関数名を調べるには、Ada オブジェクト ファイル (コンパイルの結果) をダンプしてみてください。

于 2012-04-26T18:34:11.723 に答える