持つことは可能ですか?
- (管理されていない)C ++の純粋な抽象クラス(基本的にはインターフェース)
- このクラスの実装を<選択した.net言語を挿入>で管理している
- これらのマネージド実装を(アンマネージド)C++から使用します
SWIGまたはC++/ CLI接着剤を使用していますか?
SWIGは、ここで使用するツールです。具体的には、SWIG directorを使用します。オンライン ドキュメントから:
SWIG ディレクタ機能は、生成された C# プロキシ クラスに追加のコードを追加し、これらのクラスをクロスランゲージ ポリモーフィズムで使用できるようにします。基本的に、これにより、アンマネージ C++ コードが仮想メソッドのマネージ コードにコールバックできるようになり、ラップされた C++ クラスから C# クラスを派生させることができます。
悪魔は細部に宿っていますが、それはかなり単純です。オブジェクトの有効期間には十分注意してください。2 つの異なるメモリ管理アプローチを扱っているため、注意を怠ると、無効なポインターが発生しやすくなります。しかし、それはまったく別の話です;)