• ベストアンサー

VB2005で作成したDLLの呼び出し方

はじめまして、VB2005(.NET)初心者です。 現在、各プログラムを実行するためのメニュー プログラムを作成しています。 .net以前では、各プログラムをEXEで作成し API関数を利用し、メニューより実行させて いましたが、今回、各プログラムをEXEではなく dllで作成し実行する方法で作ることになりました。 各プログラムのdllを実行する方法がわかりません。 参考書等みてみましたが、見当たりません。 どのようにしていらっしゃるか教えて下さい。 宜しくお願いいたします。

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

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

各プログラムのdllを実行するというのがいまいち分からないのですが。。。 メニューのプロジェクトにて作成したdllを参照設定すれば、普通に自プロジェクトのクラスのように取り扱えると思うのですが? おそらく、dllになっているのは各機能毎の画面だと思われますので、メニュー側でformのインスタンスを作成して表示する事になると思われます。(想像も含まれていますので、外していたらごめんなさい。また、この辺の各画面の管理方法に関しましては、仕様にもよりますので。。。) また、動的にdllを読み込む事も出来ます。 System.Reflection.Assembly.Load System.Reflection.BindingFlags.CreateInstance InvokeMember 参考までに。

ayapama
質問者

お礼

ご返答、大変ありがとうございます。 参照設定をしたら、そのまま使用することができました。 プログラムが何十本もあるので、一つ一つ参照設定が 必要なんですね。 .netの構造がいまいち理解できていないので 応用がきかず情けないです。 また、がんばって作っていきます。 本当に、ありがとうございますた。

関連するQ&A

  • VB2008でのDLL作成方法について

    はじめまして、はじめて投稿します。 初心者なので変な質問をしていたらすいません。VB2008を使用しています。 VBで作成したDLLファイルをLabviewで使用したいと思っています。 ただVB6.0でActiveX DLLを作成する方法はわかるのですが、VB2008で作成する方法がわかりません。 クラスライブラリでプログラムを作成し、DLLにすることはできるのです・ しかしレジストリに登録しようと思い「regsvr32 ファイルのパス**.dll」と入力したところ「**.dllは読み込まれましたが、DllRegisterServerエントリポイントが見つかりませんでした」と出ます。 調べてもVB2008でのActiveX DLL作成方法が見つからなくて困っています!!! わかるかた、よろしくお願いいたします。

  • VBで使用できるDLL(SSL通信)をVC++で作成する。

    VBで使用できるDLLをVC++で作成しました。 内容は、SSL転送をWindowsで行うためのDLLです。 DLLではなくexeで作成したときはDOS窓からうまく動いたのですが、 DLLで作成をして、VBから呼んだときにエラーメッセージがでてプログラムは実行されません。 エラーメッセージは、 実行時エラー'53': ファイルが見つかりません:dll-file-name です。 エラーにはいろいろな要素があると思うのですが、 このエラーが出るか出ないかは、関数の中のSSL通信のプログラムを書くと このエラーがでます。 例>SSLeay_add_ssl_algorithms(); SSL通信の記述がなければ正常に実行されるので、この部分だけだと思うの ですが、特別な設定、記述があれば教えてください。 よろしくお願いします。

  • VCやVBで作成したDLLがどのEXEから起動されているか知りたい。

    VBやVCで作成したDLLがそれぞれあります。 それぞれは複数のEXEから起動されます。 DLLの中でどのEXEから起動されたか知りたいんですが なにか方法はありませんか? 起動している関数などにパラメータを追加できない事情がありまして・・・ よろしくお願いします。

  • VC++で作成したDLLについて

    すみません、 VC++6.0で作成したDLLについて教えていただきたいのですが。 TEST_A.DLLというDLLと、TEST_B.DLLというDLLファイルを作成したとして これをC:\TEST\DLL\に格納してるとします。 このとき、TEST_B.DLLからはTEST_A.DLLの関数を呼び出しています。 次に、TEST_B.DLLの関数を使用しているTEST.EXEという実行ファイルを VB6.0で作成します。 このファイルをC:\TEST\EXE\に格納します。 そして、TEST.EXEを実行すると、 「TEST_B.EDLLが見付かりません」と言って怒られてしまいます。 VBでは、TEST_B.DLLをフルパスで指定しております。 しかし、TEST_A.DLLをEXEと同じ場所に置いてあげると 正常に動きます。 これは、TEST_B.DLLからTEST_A.DLLが見えていないということなのでしょうか? TEST_B.DLLの設定がおかしいのでしょうか? それとも、TEST.EXEでもTEST_A.DLLをフルパス指定してあげないといけないのでしょうか? ちなみに今回、プロジェクトマネージャーから「環境変数(PATH)の設定はしたくない」と言われていますので、PATHの指定はしてません。 すみませんが、どなたか教えていただけますでしょうか?

  • VC++6.0からVBで作成したActiveX.DLL内の関数が呼出しできない

    VB6.0で作成したActiveX.DLLをVC++6.0(Win32SDK)側で 呼び出すプログラムを作成中です。 VB側(DLL)では問題なく作成できています。 Classに1つPublic関数を作成しただけです。 (Instancingは5MultiUseにしてあります) しかし、VC++側の呼出しでDLL内の関数が 呼び出せないのです。 LoadLibraryExでDLL自体のハンドルは取得できるのですが GetProcAddressで関数の取得時にNULLが返ってきてしまいます。 今まで試したことは ・VBからの呼出しはOK ・MFCだとOK ・SDKでもuser32.dll呼出しのサンプルは関数も実行できる です。 今からMFCへ以降するのは厳しいのでSDkでの方法を 知りたいです。 VB側が悪いのかもしれませんが、関数1つですし、 いじるところもほとんどないので多分VC++側だと 思っています。 なにか注意点とか確認するところをおしえていただければ 幸いです。 環境 Windows2000 SP3 VB6.0 SP5 VC++6.0 SP5 Win32SDK

  • VB2010で作成したdllからtlbが作れない

    VB.NETで作成したDLLをExcelのVBAから呼び出すということをやっています。 VB2007のときはよかったのですが、VB2010にしてからうまくいかなくなりました。 具体的には、コンパイルしてClassLibrary1.dllファイルを作成してから C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase を実行すると、 ClassLibrary1.dllは有効な.NETアセンブリではないため、読み込めませんでした。 となります。 ClassLibrary1の「アセンブリをCOM参照可能にする」にはチェックを入れています。 おわかりの方がいらっしゃいましたら、どうぞよろしくお願いいたします。

  • VB 2008 DLL作成の方法

    当方Visual Studio 2008のVB、C++で開発をしています。 VS2008のVBでクラスライブラリとして作成し、ビルドをしてDLLを作成したのですが、 対となるLIBファイルがどこにも見当たりませんでした。 VS6.0のVBではLIBファイルも作成されました。 VS2008のVBでLIBファイルを作成する方法をご存知の方いらっしゃいましたら教えてください。 LIBファイルを使用する理由は、VBで作成したDLLをC++に組み込むときにリンクさせる為です。 ※今回はLoadLibrary関数を使わず、LIBファイルを使おうと考えています 以上、宜しくお願い致します。

  • VBがデバッグ時落ちてしまう

    VC6.0でDLLを作成し、VB6.0で呼び出すプログラムを作成しています。 DLLの内容はWindowハンドルを引数にしてそのハンドルを持つWindow上にListboxを作成するというようなものです。(もともとC言語用のDLLだったものをVBで使いまわしています) このプログラムをデバッグ実行し、デバッガ上で停止[実行->終了]とすると、VB6.exeがアプリケーションエラーで落ちてしまいます。(DLLの関数を呼ばない限り大丈夫です) デバッグ実行でも普通に終了(アプリケーションでの終了)であれば正常に終了してくれます。 このままですと、実行時エラーで止まる度にVB6.exeが落ちてしまい非常に不便です。 このような現象で困った方いませんか? 解決策がありましたら教えてください。

  • VB(6.0)で作成したDLLをVB(.Net)で呼び出す方法

    VB(6.0)で作成したDLLをVB(.Net)で呼び出すのに Public Declare Function 関数名 Lib "~.dllのパス"               (ByVal ・・・) As 型 このように呼び出してみているのですが 上手くいきません。整数データの変更も しました。 このDLLを呼び出せないと次に進めないので 本当に困っています。 よろしくお願いします。

  • VB6 - DLLの動的リンクの方法について

    統合アーカイバプロジェクトのdllを使用した解凍ツールを作ろうと思っているのですが、dllを遅延バインディングする方法はあるのでしょうか? 現在は全てのdllの、全ての関数に対してDeclare節を使用しているのですが、これでは統合アーカイバプロジェクトの仕様を全く役立てられていないということになります。 ○Library系のAPIで得られる関数へのポインタはVBで利用することは原則的に不可能 ○rundllは返り値を取れないため不適切 ○VB.netでは遅延バインディングを行うことができる という程度のことは調べることができましたが、VB6での遅延バインディングを実現する方法については見つけることができませんでした。 どなたかご存知の方よろしくご教授願います。