• 締切済み

DLLについて

ビジュアルベーシックのDLLについてしりたいのですが・・・。 学校の宿題でクラスモジュールをDLLに書き換えるというのがありましたが、DLLっていうもの自体よくわかりません。どうにしていいのかもわかりません。WebsiteとかでDLLついてのことをさがしてみたのですが・・・見つかりません。もし、DLL(ビジュアルベーシックの)について詳しく説明してあるWebsiteなど知っている人がいたら教えてください。DLLを使うと何が違うのか(標準との違い)もしくはDLLについて詳しく教えてくれませんか? よろしくお願いします。m(__)m

みんなの回答

  • itohh
  • ベストアンサー率45% (210/459)
回答No.4

こんにちは。itohhといいます。 DLLの解説は以下の通りです。 > Windowsにおいて、複数のアプリケーションソフトが共通して利用するような >汎用性の高いプログラムを部品化してファイルとして保存しておき、必要に応 >じてメモリに呼び出して利用する手法。また、そのようにして利用されるプロ >グラム部品のこと。DLLとして提供されている機能は開発せずにすむので、アプ >リケーションソフトの開発効率が高まる。また、同じプログラム部品を複数の >アプリケーションソフトで共有するので、ディスクやメモリの容量を節約できる。 >WindowsはOSとしての機能の多くをDLLとして提供しており、基本的なアプリケー >ションソフトならば標準のDLLが持つ機能を呼び出すだけで構築できることも多い。 (e-Wordsより抜粋) VBでもDLLは作成できることは他の方が回答しているとおりです。 ただし、No.2かたが回答している >ActiveX DLLを使用できるのはVisualBasicのみです。他の言語では使用できません。 は、違うと思います。 VC++でもVBA(アクセスやエクセルのマクロ)やVBScriptでもまた、Perlでも使用することが できます。 ActiveX DLLの良いところは、開発言語に関係なく共通の関数群が作成できるということです。 ActiveX DLLを作成できる開発言語は、VC++,VBです。確認はしていないのですがC#という新し い言語でも作成できると思います。

  • Hk2001
  • ベストアンサー率48% (24/49)
回答No.3

DLLを作成するということは VB6からですね。 No2.さんの方法で作成できます。 >新規のプロジェクトを作成時に「ActiveX DLL」を >指定すれば、作成が可能です。 既に存在するクラスで作る場合は、クラスを開いてプロジェクトを 「標準EXE」から「ActiveX DLL」に変更してください。 補足ですが、私が、VBで作成したDLLは、なんか普通のDLLと違ったものになってしまいました。何処とは、詳しくわかりませんが、たとえば、コンポーネントとして あつかわれてしまい、プロジェクトの参照設定で設定しなければ使えませんでした。Declare で使えなかった。(やり方が悪かったのかもしれませんが) あと、DLLは、作成したバージョンの管理をしっかりしてください。 以前のバージョンからの互換を保たないと そのDLLを使用したEXEが動きません。 なんで、クラスのインターフェース部分は、しっかり考えて作成してください。 ※インターフェース部分(Publicの部分)

noname#202350
noname#202350
回答No.2

#1の回答に補足致します。 質問方がどのVBを使用されているのかはわかりませんが、「VBX」は「VisualBasic Ver2」時のコントロール ファイルですので現在のバージョンでは使用できません で、VisualBasicのDLLですがおそらく「ActiveX DLL」 のこと指しているのではないでしょうか? 新規のプロジェクトを作成時に「ActiveX DLL」を 指定すれば、作成が可能です。 また、通常のDLLと違いは大まかには以下のとおりです。 ・手続きの違い  DLLではC言語インターフェースですがActiveX DLL  ではCOMに従います。  (細かいところでは違うと思いますが、簡単に言え  ばこれであってると思います) ・使用環境の違い  ActiveX DLLを使用できるのはVisualBasicのみです。他の言語では使用できません。 参考になるでしょうか?

  • takebou
  • ベストアンサー率43% (27/62)
回答No.1

VBのDLLというところから違う気がしますよ。 DLLというのは、Dynamic Link Library の略で、ライブラリをいろいろなアプリで共有するものです。 具体的には各アプリケーションで必ず使用される、ウィンドウを表示するという動作や、メニューを受け付けると言う動作などをDLLに格納しておくのです。 CやC++言語をコンパイルして作られているものです。 VBでこれにあたるものはVBXファイルのような気がしましたが・・・。 VBでもDLLを使用できた気はします。 最新のVBがDLLに変換できるようになってたのならゴメンナサイ。

関連するQ&A

  • dll 内のフォームに値を表示

    VB6 で初めてDLLの作成を行っているのですがイメージ通りの動作がしません。 VBD.dll内に フォーム fm1, 標準モジュール Hm1, クラスモジュール CM1を作成しクラスモジュール CM1内にFunction Fcm1 (x1 as string,x2 as integer) を作り Fcm1 で受取るパラメータ x1を フォーム fm1 にある 文字.caption に表示したいのですが上手く行きません。 考えて方が根本的に間違っているのかも知れませんが手順を教えて頂けれ無いでしょうか、よろしくお願いします。

  • クラスモジュールについて

    笑われてしまうかもしれませんが、クラスモジュールはどんな時に使用するべき なのかが分かりません。 標準モジュールとどう使い分けていけば良いのか教えてください。 また、DLLとOCXも、どう使い分けたら言いか教えてください。 よろしくお願いします。

  • 共有DLLの参照方法

    共有DLLのインストールパスが変わる(Windowsがインストールされたパーティションのマッピングの違い,X86とX64の違い,ユーザーがカスタムインストールしているなど) EXEとの相対パスが変わる(ZIPで圧縮されている場合の回答位置など) DLLの種類やその中に含まれるクラスなどの定義は変わらない レジストリなどを介してファイルパスはわかる という事になるわけですがこういった場合の参照はどのように追加すればよいのでしょうか? どぼん氏のプラグイン機能を持つアプリケーションを作成するのような実装では インターフェースをEXEか別のDLLでインターフェースをクラス分全て持たなければならない インターフェースを持つDLLと共有DLL、インターフェースを持つDLLとEXEの双方の相対パスが変えられない またはインターフェースを持つDLLの絶対パスが変えられない といった問題が回避できませんでした。 環境はWindows Vista x64+Visual Studio 2005です。

  • DLLって…。

    すみません、パソコン素人なんですがDLLって単純に言うと何なんでしょうか??よく圧縮・解凍ツールの説明のところに書いてあるのですが(それ自体も違うのかな)・・・。いろいろ自分で調べてみてもイマイチよくわかりません・・・。教えてくださいm(__)m

  • DLLの作成手段はありますか?

    VB6を使用していますが、汎用的な関数群などを、標準モジュールではなく、独立したDLLにしたいのですが、手段はあるのでしょうか? ActiveXのようなインターフェースを持たない関数やサブルーチンも多くあります。 ご存知の方いらっしゃいましたら、よろしくお願い致します。

  • VSのDLLをVB6で利用

    Visual Studio で作成したDLLをVB6に取り込んで利用しようとしていますが、 うまくいきません。 参照利用すること自体は可能なのでしょうか?

  • 標準モジュールとクラスモジュールの違い

    マイクロソフトのAccess2000でVBAプログラミングを行なっておりますが、 基本的なことを教えてください。 「標準モジュール」と「クラスモジュール」の違いはなんですか? 例えば、どこからでも使えるプロシージャ Public Function getSum( i1 as integer, i2 as interger ) getSum = i1 + i2 End Function を定義したとして、標準モジュール内に書くのとクラスモジュール内に 書くのとでは、何が違ってきますか?その他とにかく「標準モジュール」 とクラスモジュールの違いを教えてください。

  • VB6でバイナリ互換でDLL作成するには?

    VB6.0にてActiveX DLLで開発をしたいのですが、 プロジェクトのプロパティ.コンポーネントにてバイナリ互換を選択すると バージョン互換コンポーネントを設定できません。というエラーメッセージが出て、 DLLを作成できません。 プロジェクトはフォーム1画面、標準モジュール複数、クラスモジュールで構成されています。 DLL作成手順のアドバイスをお願いします。 もう1点、 ある程度、開発できたら単体テストを行います。 その際は現場で用意されているテスト起動画面を使用するように言われたのですが、 この方法だと自分の担当画面に修正を加えるたびに下記1~3の作業を行う 必要があると思うのですが、もっとスマートな方法はないのでしょうか? 1.修正したプロジェクトを保存してdllを作成する。 2.作成したdllを所定の場所(現場で指示された場所)に格納 3.テスト起動画面からそのdllを指定して単体テスト

  • VC++2010のmsvcp100.dllについて

    私は、windows7 64bitで「Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1」や「Microsoft Windows SDK for Windows 7 and .NET Framework 4」 をインストールしました。 しかし、Message: Visual Studio C++ 2010のProgram Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.CRT\msvcp100.dllが見当たりません。redistフォルダ自体が存在しません。 どうすれば、Program Files (x86)\Microsoft Visual Studio 10.0\VC\いかにredistフォルダとmsvcp100.dllを作成することができますか?

  • クラスモジュールについて

    はじめまして。 クラスモジュールと標準モジュールの大きな違いは何なんでしょうか?基本的な質問で申し訳ありません。どなたか教えてください。 ma-ki

専門家に質問してみよう