2012-01-20 6 views
1

私はC++で複雑なライブラリを開発しています。私はCインタフェースを持つ予定ですので、他の人がDLLをロードしてlibに簡単にアクセスできるようにします。私はCコードにアクセスするC#でコードを書くことを試みていません。私は素早くGoogleを行い、多くの属性を使用するコードを見つけました。C#/ .NET用のCライブラリをスムーズに開発するには?

.NETを同期させようとする頭痛を起こさないように、インターフェイスを簡単に保つにはどうすればよいですか?私が使用できるヘッダー生成ツールのいくつかの種類はありますか?シンプルなPOD構造体だけを使用しますか?私は彼らがポインタとして渡されるので、どのように型を扱うべきかわかりません。私は多分私はint/stringや配列ではないものを使用しないでください。

私はMSVCを使用して開発していますが、主にGCCで使用しています。私は呼び出し規約__stdcallを使うべきであることを知っています。私が言ったことを超えて、私はまったく無名です。私は実際にDLLを.NETにロードする方法を知らない。

C libを作成して.NETで実行するときに、すべてが正しく動作するようにするにはどうすればよいですか?

+0

あなたは '__stdcall'を使う必要はありません。もしあなたが好きなのであれば、 '__cdecl'でP/Invokeをうまく動作させることができます。 –

答えて

2

COMインターフェイスをまとめることを検討してください。 .NETからのCOMの消費は、P/Invokeよりわずかに簡単です。少なくとも、C#のすべての関数のプロトタイプを記述する必要はありません.COMのtypelibインポーターがそれを行います。

関連する問題