- PR -

VB.NETで作成したdllをVC++6から使用したい

投稿者投稿内容
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2004-08-12 13:42
VCからVBで作ったDLLを呼び出せるかも、結局COMであるかそうでないかによります。COMでないDLLは基本的に言語に依存するため、呼び出しを行うことはほぼ出来ません。
ただし、VCで作ったDLLをVBで使うことは、VC側で使えるように関数宣言してやれば、比較的簡単にVB側で使うことができます。(がこれでは要求を満たせないのでダメですね。。)
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-08-19 14:37
お世話になっております、半人前です。

引用:


  1. MSDNを開く(スタート→プログラム→VS.NET→VS.NETドキュメント)「適当に省略」
  2. キーワードタブを開く
  3. 検索する文字列に、「アセンブリからタイプ ライブラリへの変換の要約」を入力
  4. 変換と概要をクリック



  1. 同じくMSDNのキーワードタブを開く
  2. 検索する文字列に「CCW」を入力する
  3. using .NET code from a COM clientをクリック




ありがとうございました。勉強させていただきます。
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2004-08-19 15:12
DLLと一口におっしゃっていますが、DLLには
- .NETのDLL(VB.NETで作成できるのはこれ)
- ActiveX DLL(COMという言葉がでてくるものはこれ。VB6以前で作成可能なのはこれ)
- 標準DLL(WindowsAPIなど主にC言語などで作成される。VB6以前/VB.NETでは作成できない)
の3種類あります。
(上のDLLの呼び方が一般的な表現かどうかはわかりませんが、とりあえず3種類あるというのが重要)
VC6で作成できるのは、ActiveX DLL、標準DLLの2種類です。
VB.NETでは直接ActiveX DLLを作れるわけではないですが、.NETのDLLをCOMとして
扱う手段が用意されていますので、ActiveX DLLも作れます。

というわけで、VC6とVB.NET(またはVB?)とどうしても連携させないといけない!
となるとCOMで連携するしかないと思いますが、
言語の選定を変えられるのであれば、Jittaさんがおっしゃっているように
変えてしまった方がよいと思います。

<追記>
kesさんの2004-08-11 11:34分の投稿を見落としてました。(^^;
後半の「というわけで〜」コメントは意味ないですね。
</追記>

[ メッセージ編集済み 編集者: よねKEN 編集日時 2004-08-19 15:16 ]
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-08-23 09:34
引用:

よねKENさんの書き込み (2004-08-19 15:12) より:
DLLと一口におっしゃっていますが、DLLには
- .NETのDLL(VB.NETで作成できるのはこれ)
- ActiveX DLL(COMという言葉がでてくるものはこれ。VB6以前で作成可能なのはこれ)
- 標準DLL(WindowsAPIなど主にC言語などで作成される。VB6以前/VB.NETでは作成できない)
の3種類あります。



上から順に1,2,3として

認識1 .NET版アプリは1,2,3ともロードできる(?)
認識2 非.NET版アプリは2,3だけロードできる

この認識は正しいでしょうか?

勉強不足ですいません、ご教示よろしくお願いいたします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-08-23 10:43
諸農です。

> 認識1 .NET版アプリは1,2,3ともロードできる

.NETアプリがCOMクライアントになるのにRCWを使って、
その状態のことを「ロードできる(認識1)」というのであ
れば、.NETアセンブリをCCWを使ってCOMサーバーとして公
開することもOKの範囲になるのではないでしょうか?

ですので、
> 認識2 非.NET版アプリは2,3だけロードできる
は、正確とはいえないのではないでしょうか?



_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
隣の古柴
ベテラン
会議室デビュー日: 2004/06/04
投稿数: 94
投稿日時: 2004-08-23 11:54
いつもお世話になっております。

引用:

Jubeiさんの書き込み (2004-08-23 10:43) より:
諸農です。

> 認識1 .NET版アプリは1,2,3ともロードできる

.NETアプリがCOMクライアントになるのにRCWを使って、
その状態のことを「ロードできる(認識1)」というのであ
れば、.NETアセンブリをCCWを使ってCOMサーバーとして公
開することもOKの範囲になるのではないでしょうか?

ですので、
> 認識2 非.NET版アプリは2,3だけロードできる
は、正確とはいえないのではないでしょうか?








レスありがとうございます。

なんかむちゃくちゃ奥が深いといいましょうか・・、有難く勉強させて頂きます。


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