1

持つことは可能ですか?

  1. (管理されていない)C ++の純粋な抽象クラス(基本的にはインターフェース)
  2. このクラスの実装を<選択した.net言語を挿入>で管理している
  3. これらのマネージド実装を(アンマネージド)C++から使用します

SWIGまたはC++/ CLI接着剤を使用していますか?

4

2 に答える 2

1

SWIGは、ここで使用するツールです。具体的には、SWIG directorを使用します。オンライン ドキュメントから:

SWIG ディレクタ機能は、生成された C# プロキシ クラスに追加のコードを追加し、これらのクラスをクロスランゲージ ポリモーフィズムで使用できるようにします。基本的に、これにより、アンマネージ C++ コードが仮想メソッドのマネージ コードにコールバックできるようになり、ラップされた C++ クラスから C# クラスを派生させることができます

悪魔は細部に宿っていますが、それはかなり単純です。オブジェクトの有効期間には十分注意してください。2 つの異なるメモリ管理アプローチを扱っているため、注意を怠ると、無効なポインターが発生しやすくなります。しかし、それはまったく別の話です;)

于 2009-09-17T14:32:36.450 に答える