- - PR -
VB6.0で、ActiveXDLLを作成し、EXE側から作成したDLLを起動したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-05-18 19:17
諸農です。
VB6で作成してVB6で利用する、となると私はお手上げです。 すみません。 他の方からの情報を待つか、COM/ActiveX関連の書籍を 参考にしてください。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-05-19 07:50
1.EXE側にDLL参照するようにするソース
CreateObjectを使います。 Dim objA As Object Set objA = CreateObject("コントロールの名前") 2.EXE側からDLLのフォーム呼び出すソース 果たしてそのようなActiveXをVB6で記述したとして、まともに動作するかは謎です。仮に行うとしたら、DLL側でForm相当のインターフェースを用意するか、FormをImplementsする事になるでしょう。 その上で、EXE側は以下のようなコードでFormを呼び出すことになるのかな。 Dim objA As Object Set objA = CreateObject("コントロールの名前") objA.Show 3.DLL側のフォームロードと、アンロードイベント ん?そのまま普通に・・・。と言うかImplementsした場合、強制的に書かされるはず。中身は空にするなり、自分で必要なコードを書くなり好きに。 #今現在、どんなコードを実装しているんだろうと気になったり・・・ _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||
|
投稿日時: 2005-05-19 13:05
お世話になります。
>DLL側でForm相当のインターフェースを用意するか、FormをImplementsする事になるでしょう。 ということですが、 DLL側のクラス上に、Implements フォーム名 としたんですが、コンパイルエラーになります。 引き続き、調査続けますが、Implementsの使い方間違っているとは思いますが、 正しい記述法を探しています。 Implementsの使い方を教えていただけないでしょうか。 ちなみに、MSDNがないため調査も四苦八苦しております。 よろしくお願い致します。 | ||||
|
投稿日時: 2005-05-20 09:09
いざとなれば、DLL側のクラスにフォームを呼び出すPublicなプロシージャを作成すれば、確実にDLL側のフォームを呼び出せます。
※対象はVB6です。 例: ▼DLL側の構成 プロジェクト名:DLLProj フォーム名:frmDLL クラス名:Class1 ▼DLLのClass1に次のように記述 Public Sub ShowMyForm() frmDLL.Show End Sub 記述後DLL側をコンパイルする。 ▼EXE側のForm1に次のように記述 (事前にDLLに参照設定をしておく) Private Sub Command1_Click() Dim c As New DLLProj.Class1 c.ShowMyForm End Sub ところで、ここは.NETの話題を扱うところなので、VB6の質問があればVB6を専門に扱っているところの方が良い回答が得られると思います。 |