- PR -

C#からVC++で作成したクラス・関数を使用する

1
投稿者投稿内容
まかろに
常連さん
会議室デビュー日: 2005/06/17
投稿数: 41
投稿日時: 2005-06-28 00:08
お世話になります。

現在 C# で開発を行っているのですが
ライブラリ郡(主に算術系)が VC++ で作成されており
せっかくなので、それらのクラスや関数を使えないかと思っています。

文章がややこしくなりそうなので、箇条書きにて書かせていただきますと

1:自分をメンバに持っているクラスや他クラスの参照型、ポインタなどの引数を
  持つ関数を呼び出せるのか?

2:関数だけでなく、ライブラリ側のクラスのインスタンスを作成し
  普通にメンバ変数等を使えるのか?

3:同じ名前のメンバ関数をを持つクラスを、一つの DLL にまとめても
  大丈夫なのか?

といった辺りが問題としてあがっています。
これらは対応可能なのでしょうか?

C#はまだまだ勉強中でして、初歩的な質問かもしれませんが
どうぞよろしくお願い致します。

【開発環境】
WindowsXP SP2
Visual Studio .NET2003
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-06-28 06:56
Managed C++のライブラリとしてビルドされている、又はリビルドする事が許されるなら、C#のコードから直接クラスライブラリとして呼び出せます。プロジェクトから参照設定するなどして使ってください。

ネィテブなC++のクラスを、C#から直接呼び出す事は出来ません。Cでラッパー関数を用意するか、Managed C++でラッパークラスを作る必要があるでしょう。
まかろに
常連さん
会議室デビュー日: 2005/06/17
投稿数: 41
投稿日時: 2005-06-28 15:55
レスありがとうございます。

上記のライブラリは、別のプロジェクトでも使われており
こちらは C++ で書かれています。

もし、ライブラリを Managed C++ としてビルドし直すとすれば
今度はその別プロジェクト( C++ )側で使えなくなると
なるのでしょうか?

てことは、両プロジェクト( C++ と C# )で同じライブラリを使いたければ
Managed C++ でラッパークラスを作らざるを得ないということ
なんでしょうかね?

1

スキルアップ/キャリアアップ(JOB@IT)