1

C++/MFC で GDAL と呼ばれるライブラリを実装しました。このプロジェクトでは、ビット マップを描画するための gdiplus も実装しています。

要するに、int、string、およびその他のかなり一般的な型を取り、それらの型の一部と gdiplus::Bitmap を返すクラスにすべてをカプセル化しました。これらすべてが .dll と .lib にうまくまとめられています。

だから今、このライブラリを C# プロジェクトで使用して、フォームのすべての機能を使用したいと考えています。

インターネット全体で答えを探しましたが、チュートリアルやその他の役立つドキュメントで非常に具体的なものは見つかりませんでした。

しかし、私の目を引いたものの、あまり詳しく説明されていない解決策が 1 つあります。それは c++/clr ラッパーでした。私は、C# が参照として精巧に受け入れたものを作成しましたが、そのクラスをインスタンス化することも、名前空間や関連する情報をインテリジェンスを通じて表示することもできません。

誰かがその道を進むのを手伝ってくれたり、同様の良いものをくれたりしたら、とてもありがたいです.

4

1 に答える 1

1

C#プロジェクトでC++クラスを使用することはできません。

2つのオプションがあります。

最初のアプローチは、VC ++でマネージラッパーを作成することです。これにより、アンマネージクラスにアクセスし、クラスのさまざまなプロパティ/メソッドへの呼び出しを集約するマネージクラスが作成されます。

これを行う方法については、この記事を参照してください

ラッパーを取得したら、参照を設定して、C#のクラスを使用できます。

2番目のアプローチは、MFCオブジェクトをCOMオブジェクトでラップすることです。インターフェイスを定義してから、クラスファクトリを作成してから、オブジェクトをインスタンス化する必要があります...これは、より「オブジェクト指向」ですが、多くの作業が必要です。チュートリアルを参照してください。

于 2012-04-18T15:55:41.753 に答える