2

SharpDX自体以外のプロジェクトでラッパーを生成するためにSharpGenSharpDXから)を使用した人はいますか?C++ ライブラリのラッパーを生成するためにSharpGenと Swig のどちらを使用するかを決定したくありません。

SharpGen によって作成された生成コードは高速のようです (SharpDX は管理された世界で最速の DirectX-Wrapper として知られているため)。しかし、そこには SharpGen に関するドキュメントはあまりありません。一方、Swig はより適切に文書化されていますが、速度のために SharpGen として最適化されていない可能性があり、マルチ言語生成機能は必要ありません (現時点では C#/.Net のみが必要です)。共有する経験はありますか?

4

1 に答える 1

4

SWIG は十分に文書化された汎用相互運用ラッパーですが、SharpGen は実際に SharpDX で使用される内部ツールであり、C++ COM インターフェイス (または仮想純粋メソッドを持つ C++ クラス) で動作するように特別に設計されています。SWIG は C++ スタブをコンパイルする必要がありますが、SharpDX は相互運用全体を .NET から完全に実行しています (したがって、AnyCPU の利点があります)。SharpGen は、SharpDX ビルドの外で簡単に使用できるようにパッケージ化されていませんが、ツール自体は SharpDX なしで使用できますが、構成方法を知るために既存のマッピング ファイルを掘り下げる必要があります (例はこちら) 。

特定の要件がない限り、十分に文書化されている SWIG を使用します。SharpGen は、すでに SharpDX を使用しており、独自のカスタム C++ COM オブジェクトにアクセスしたい開発者により適しています。

于 2013-01-22T01:22:29.960 に答える