2012-01-01 28 views
4

C++アプリケーションAPIを他の言語との相互運用を簡単にする共通のアプローチはありますか?おそらく、他のプラットフォーム(.NET、Pythonなど)のためのマーシャリングコードとともにC++インターフェイスを生成するために、より高いレベルのインターフェイス記述言語を使用するようなものでしょうか?他の言語とのC++ interop

答えて

1

SOAP/WebServices/Corba?

あなたはそれよりも緊密に(つまりリンカーが)結合しているように思えますが。

+0

あなたは正しいです、私は軽いものを探しています。例えばウェブ技術を使用してアプリケーションのプラグインは過剰なものになるでしょう。 –

2

いくつかのオプションがあります。

.netと相互運用する場合は、C++/CLIラッパークラスを作成できます。これにより、.netから直接参照可能なC++クラスを記述することができ、実装ではネイティブC++を使用できます。

歴史的には、COMもこの目的で使用されていましたが、今日ではそれほど普及していません。

SWIGというライブラリもあり、Javaや他の言語と相互運用します。

編集:それは別の可能性は(その実装はC++であっても)extern "C"すべてのあなたの公表APIを作るかもしれないWinRT components

+0

ボイラープレートコード(C++やCLIラッパーなど)を書かずに、私の質問は自動的にできます。私は実際に質問でSWIGについて言及することをためらった。 SWIGは、C++のインタフェース - > APIのように、別の方法のように見えます。 –

+1

@ 7vies:私たちは現在C++/CLIを行っていますが、これをより合理化する方法を見つけていません。多くの場合、C++/CLIクラスを単一のcppファイルに書き込むことができます。すべてのメソッドがインライン化されているため、メンテナンスの面倒がいくらか軽減されます。マイクロソフトが新しいWinRT API用のネイティブコードを書くことを促進するように、Windows 8の開発ツールでは状況が改善する可能性があります。 http://pwlodek.blogspot.com/2011/09/build-your-first-winrt-component.html –

0

でWindows 8に容易になりますように見えます。

関連する問題