- - PR -
VB.NETで作成したdllをVC++6から使用したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-12 13:42
VCからVBで作ったDLLを呼び出せるかも、結局COMであるかそうでないかによります。COMでないDLLは基本的に言語に依存するため、呼び出しを行うことはほぼ出来ません。
ただし、VCで作ったDLLをVBで使うことは、VC側で使えるように関数宣言してやれば、比較的簡単にVB側で使うことができます。(がこれでは要求を満たせないのでダメですね。。) | ||||
|
投稿日時: 2004-08-19 14:37
お世話になっております、半人前です。
ありがとうございました。勉強させていただきます。 | ||||
|
投稿日時: 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-08-23 09:34
上から順に1,2,3として 認識1 .NET版アプリは1,2,3ともロードできる(?) 認識2 非.NET版アプリは2,3だけロードできる この認識は正しいでしょうか? 勉強不足ですいません、ご教示よろしくお願いいたします。 | ||||
|
投稿日時: 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-08-23 11:54
いつもお世話になっております。
レスありがとうございます。 なんかむちゃくちゃ奥が深いといいましょうか・・、有難く勉強させて頂きます。 |