- PR -

C#のクラスライブラリ(DLL)をC++(アンマネージド)から使えますか?

1
投稿者投稿内容
ほんちん
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 14:10
はじめて投稿します。
件名に書いたとおりなのですが、C++からC#のDLLを利用することは可能でしょうか?
逆のパターンはWEBに多く乗っていたのですが・・・。

どうぞよろしくお願いします。
D, an alchemist
会議室デビュー日: 2005/02/02
投稿数: 11
投稿日時: 2005-03-18 14:24
この辺りがキーワードになるかと。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cptools/html/cpgrfassemblyregistrationtoolregasmexe.asp


hope it helps
D, an alchemist.
ほんちん
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 15:18
さっそくの解答ありがとうございます。
可能・不可能でいえば可能ということですね!

さらっと読んだのでもしかしたら誤認しているかもしれませんが、
C#のDLLをCOMとして、レジストリに登録して、C++から利用するということでしょうか?

できればC++のコーディングレベル(externみたいな)で利用したいのですが・・・。
欲張りですいません!
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-03-18 15:25
引用:

ほんちんさんの書き込み (2005-03-18 15:18) より:
さらっと読んだのでもしかしたら誤認しているかもしれませんが、
C#のDLLをCOMとして、レジストリに登録して、C++から利用するということでしょうか?


そのとおり。

引用:

できればC++のコーディングレベル(externみたいな)で利用したいのですが・・・。
欲張りですいません!


それは無理。そもそもC#で生成されるのはネィティブコードではないので、ネィティブコードで動作しているアプリケーションから簡単に呼び出すことは出来ません。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
ほんちん
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 15:31
D, an alchemist様、甕星様、明瞭なご解答ありがとうございました。
COM利用する部分をラップして他のプログラムと連携を取るように考えてみます。

C++の経験しかなく、C#は昨日一昨日からはじめた若輩者ですが、今後ともよろしくお願いします。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-03-18 15:56
もうひとつの方法として、Managed C++を使うというのを忘れてた。
Managed C++からなら参照設定すれば普通にライブラリとして呼び出せるはず。
_________________
甕星 <mikahosi@abox9.so-net.ne.jp>
http://blogs.msmvp.jp/mikahosi/
ほんちん
会議室デビュー日: 2005/03/18
投稿数: 14
投稿日時: 2005-03-18 16:02
甕星様、わざわざ思い出していただきありがとうございます。

ただ、残念なことに私が関わっているものには複数のEXEがあり、C++(アンマネージド)も含まれていますので、COMを利用したほうが足並みがそろいそうです。

今は、なぜかregasm.exeが見つからないので困ってます。

>それは無理。そもそもC#で生成されるのはネィティブコードではないので、ネィティブ>コードで動作しているアプリケーションから簡単に呼び出すことは出来ません。

また、どこかでobjフォルダが中間ファイルでbinフォルダが実行形式(ネイティブコード)と聞いた気がするのでが、この認識はあってますでしょうか?
1

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