C++ コードから dll を作成し、C# で使用したいと考えています。C++ から COM オブジェクトを作成する解決策はありますか?
使いたくないSystem.Runtime.InteropServices
。
どうもありがとう
COM を直接記述できますが (@Darin Dimitrov の回答を参照)、 ATLを使用することもできます。C++ コードを C# に (COM なしで) 公開するための私のお気に入りのソリューションは、C++/CLIを使用することです。
もちろん、C++ で COM+ オブジェクトを記述できます。ここにチュートリアルがあります。
それについて行くには3つの方法があります。
1)C#からのPInvokeを使用して、ネイティブメソッドを呼び出します。
2)C ++-CLIを使用して、ネイティブ機能をC#に公開するレイヤーを作成します。これは、パフォーマンスに関して私の推奨するアプローチです。
3)C ++ dllをCOMオブジェクトとして記述し、C#からアクセスします。COMの知識が必要であり、したがって開発コストが必要です。
ATL を使用できます。簡単すぎて、dll を登録するだけです。その後、すべてのC#プログラムで使用できます