• ベストアンサー

VCのクラスをVBで利用

VC++6で作ったクラスをDLLを使うなどしてVB6から利用することは出来ますか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

このあたり参考になるでしょうか? とりあえず、クラスをVBから利用するためには、 COMインターフェースを実装した上で、タイプライブラリを作る必要があった記憶があります。 (とはいえVBしか知らないので…) #No1は最後の行がポイントだと思いますが…。

参考URL:
http://www.koalanet.ne.jp/~akiya/vbtaste/tlb/
Trick--o--
質問者

お礼

回答ありがとうございます。 COMインターフェイス? タイプライブラリ? ODL言語? IDL言語? いったい何の呪文ですか?(笑 勉強しながらやっていこうと思います。

その他の回答 (3)

回答No.4

>「VB.NETで」VC6の「関数を」利用しているように見えるのですが。 前回 http://okwave.jp/qa2508692.html を載せましたが、 http://okwave.jp/qa1703839.html に関連した質問です。 要するに関数として利用させるのであれば、呼び側はどうあれ、Cの作りは.NET/VB6を問わず、変わりません。 >実際にやっている内容は仕事のだからコードを書くわけにもいかないし いや、、、コード以前の問題で、、、Cのクラスというだけでは、、、情報が少なすぎます。 Cのクラスの作りと、プロジェクトの構成の概要が知りたかったのです。 >関数のexportは出来るので ということは通常のDLLの方法で作成されているのだと思います。 関数としてだけ利用するのであれば、APIとしてそのままでも結構だと思います。 ここからは、あなたの発言からの勝手な想像ですが、あなたの言葉でいう「Cのクラスの利用」は、おそらくAcriveX形式のものを求めているのではないかな?と思います。 それであれば、また話が別です。 VCでActiveXコントロールを作成したらよいと思います。 でもコードの抜粋や、機能の方向性の概要がないままに、「どのように作成したら?」と言われても、これ以上は私には何も言えません。

回答No.3

>「できるように作る」ことが出来るのか(その方法)? >を聞いたつもりだったのですが…… 履歴を検索しましたか? 私も何度か、このような質問に対し答えております。 最近では http://okwave.jp/qa2508692.html でアドバイスをいたしました。 #2さんの飛ばしているやり方は、ActiveX形式のDLLです。 私が載せた履歴のURLは、通常のDLLです。 DLLで何をさせたいのかがわからないので、どのような作りにしたらよいかはアドバイス不可能です。

Trick--o--
質問者

補足

私が聞いているのは 「VB6で」VC6の「クラスを」利用する方法です。 ご指摘の方法は 「VB.NETで」VC6の「関数を」利用しているように見えるのですが。 > DLLで何をさせたいのかがわからないので、どのような作りにしたらよいかはアドバイス不可能です。 俺だってわからないよ!!(逆切れ 実際にやっている内容は仕事のだからコードを書くわけにもいかないし…… 最終目標は「会社で作ったライブラリ(C++)をVBから使えるようにする」だと思うのです。 関数のexportは出来るので、同じようにしてクラスも輸出できたら簡単なのにな……と思っただけですから。

回答No.1

できるかできないかは、Cの作り次第です。 ・できるように作っていたら、できます。 ・できないように作っていたら、できません。 DLLもAPIとして利用するものか(通常のDLL)、インスタンスの生成が必要なものか(ActiveXDLL)によって、VBからの利用方法が異なります。

Trick--o--
質問者

お礼

回答ありがとうございます。 ・できるように作っていたら、できます。 ・できないように作っていたら、できません。 「できるように作る」ことが出来るのか(その方法)? を聞いたつもりだったのですが……

関連するQ&A