2

C# から使用する必要があるサードパーティの C ライブラリがあります。システムの残りの部分は C# で記述されているため、C++/CLI の使用はラッパーのオプションにすぎません。

C# の代わりに C ライブラリをラップするために C++/CLI を使用する利点は何ですか? C# ラッパーを作成する利点はありますか?

ライブラリには、いくつかの構造体、いくつかの列挙型、および多くの関数が含まれています。

編集: C# で C の構造体と列挙型をラップせずに使用することは可能でしょうか?

4

1 に答える 1

5

C++/CLI を使用する利点は、ネイティブ コードとマネージ コードの両方を同じアセンブリに記述できることです。

C++/CLI を使用すると、C ライブラリとのやり取りがより簡単になります。ライブラリを通常どおりに操作し、完全に管理された .NET インターフェイスまたはクラスを公開することができます。しかしもちろん、C++/CLI を使用すると複雑さが増します。

一方、C# では、すべての構造体を再宣言し、DllImport を使用して C 関数を C# で再度宣言する必要があります。

単純な相互運用タスク (いくつかの関数といくつかの構造体など) については、C# と PInvoke を使用しても問題ありません。多くの構造体の再定義、固定、変換などを必要とする完全な API を使用する場合は、C++/CLI がおそらくより良い選択です。

于 2012-05-25T08:19:20.153 に答える