-5
私は大量のC/C++レガシーコードを持っています。そして私はそれを私のC#マネージコードから呼びたいと思います。 C++には型と関数があります。何が最善のアプローチですか?何を使用するか、外部の通話かCOMか他のものか?
私はCOMが最も汎用性が高く、適切な方法であることを知りました。しかし、私はクラスで何の例も見つけられませんでした。 C++の型を.NETクラスとしてサポートしていますか?
私は大量のC/C++レガシーコードを持っています。そして私はそれを私のC#マネージコードから呼びたいと思います。 C++には型と関数があります。何が最善のアプローチですか?何を使用するか、外部の通話かCOMか他のものか?
私はCOMが最も汎用性が高く、適切な方法であることを知りました。しかし、私はクラスで何の例も見つけられませんでした。 C++の型を.NETクラスとしてサポートしていますか?
すべてのタイプが簡単にマーシャリングできる場合は、[DllImport]
属性を使用し、必要に応じてmarshaling
属性でデコレートします。 COMクライアントが面倒になりやすいから使用できるように設計されていませんでしたレガシーコードの上にCOMインターフェイスを抽だいhttps://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/interop/index
で読ん
スタート。 PinvokeはC++コードには適していません。 C++/CLIラッパーを書くことを検討してください。その学習曲線はCOMよりもはるかに急ではなく、多才な機能を提供します。 –