-1

私はMonoDevelopを使用してc#/ .NETを学習するかなり初期の段階にあり、作業を行っています。cまたは場合によってはc++で開発されたAPIに出くわしました。私は、cまたはc ++で記述されたAPIの実装を開始するための情報を探していたので、c#プロジェクトでそれらを使用できます。現在、表示する特定のコードはありません。必要なのは、正しい方向に向けることです。

これが私が熟読した場所のサンプルです:

C#でac / C++APIを実装することを考えています。私はいくつかの調査を行いましたが、始めるのに苦労しています。

http://www.codeproject.com/Articles/1285/Calling-API-functions-using-C(やや古い記事で、実行可能に見えますが、それほど遠くないようです。)

http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=219 (いくつかの基本事項ですが、何が起こっているかについてはあまり詳しくありません。)

SOでいくつかのものを見つけました: C apiからC#GUI (これはかなり良さそうです)

https://stackoverflow.com/questions/9747607/c-apivs-2005-integrate-into-c-sharp-vs-2010project (回答なし)

C#からCと話している (見栄えが良い、Pinvokeに関するいくつかのこと)

とにかく、私は少し圧倒されており、私を始めるためにいくつかのガイダンスを使用することができます。たぶん、これは初心者がバイトオフするには多すぎますか?

どんな助けでも大歓迎です。乾杯

4

1 に答える 1

3

SWIGを試してください-これは、多くの言語のCおよびC++コードのラッパーを作成するためのツールです。

何度も使ってみましたが、良い結果が得られました。基本的に、ラップするCおよびC ++コードファイル/ライブラリを定義するだけで、SWIGは対応するC#クラス(およびいくつかの定型コード)を生成し、C#プロジェクトに追加できます(もちろん、C / C ++部分をコンパイルする必要があります)。また、それをDLLにします)。

例えば。あなたはクラスを持っていた小さなC++ライブラリを持っているかもしれません

class Foo { public: int myMethod(Bar& bar); }
class Bar { ... }

SWIGを実行すると、C#コードは次のようになります。

Bar bar = new Bar();
Foo foo = new Foo();
int result = foo(bar);
于 2012-12-03T12:41:51.457 に答える