- ベストアンサー
API、OCX、DLLって何でしょう?
タイトルどおりの質問です。ど素人なのでわかりやすく説明していただけるとありがたいです。参考URLも教えていただけるとよりありがたいです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
質問全てを盛り込んであるHPを探してみました。 そこそこわかりやすいとは思うのですけど、読んでみてください。 それと、私なりの簡単な説明です。 ○DLL(Dynamic Link Library[ダイナミック・リンク・ライブラリ]) 簡単に言えば、関数集ファイルです。 関数とは、VBのプログラミングでIf~Then,For~Next,Left,Lenなどいろいろ使った事あると思いますがこれがそうです。 このような一般的なものは、いわゆるVBランタイムDLLに定義されています。 その他いろいろと、用途別に*.DLLとあるわけです。 ○OCX(OLE Custom Control[OLE・カスタム・コントロール]) 簡単に言えば、部品です。 フォームやテキストボックス・ボタンなどなどがこれに当たります。 ようは、画面を構成する部品だと思ってもらっても構いません。 ○API(Application Program Interface[アプリケーション・プログラム・インターフェイス]) これは、DLLで提供された関数を呼び出す仕組みのことです。 ですが、VB標準の関数使用時には必要ありません。 VB標準以外の外部DLL等の関数使用時に「これから使いますよ。」と言う定義です。
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
取りあえずAPIだけについて。 APIはApplicationProgramingInterfaceの略で、3語の意味を説明します。 APIはウインドウズとJava(本稿で略)で言われます。ウインドウズはマイクロソフト社(以下MS)、Javaはサンマイクロシステム社が作りました。MSの技術者が作ったOSの部分をシステムといい、より仕事に近いMSのエクセルやワープロや一般会社・個人が作る給与計算ソフトなどをすべてアプリケーション(アプリ)といいます。MSのソフト技術者はウインドウOSを作る際に必要な機能を実現するプログラム作りましたが、これを色々な機能単位(部品)に細切れにプログラムをまとめました。色々な場面で繰り返し使えるケースが多い事が経験されるためです。その中でアプリ・プログラムを作るときに使えそうなものをまとめてライブラリ(プログラム集)としました。数千もあります。基礎的な単機能が多いです。これをアプリ側で使うときの手続きをインターフェイス(利用規約)と言います。そして利用方法を決め統一し「公開」しています。そこからプログラム群そのものやAPIプログラムを一部分に使ってプログラムすることを「APIでやる」と言います。魅力は基礎的な機能を使えることであるので、ほぼ何でも出きることです。VBプログラム言語などは一定のメニュ(例えば料理の松竹梅コース)になっているので、肉料理だけを羊に変えたければ、その焼き方を自分で調べなければならず、その焼き方・調味料情報を調べる手続きを決めているに例えられます。どの言語を通じて利用依頼するかにより、C・C++言語とVB言語やDELPHI言語など多数言語からがあるが、似せてあります。APIを使うメリットは、その省労力と誤りのなさにあります。1から作成すれば時間がかかって「仕事にならない」根気が要るプログラムもあるのです。また処理の中身を細かいところまで知らなくても、そのAPIで何が出来るかを知れば使えます。またVB言語等では出来ない凝った要求がある場合は、一部にその部分だけAPIを取り込めば出来るケースがあり、そういう使われ方があります。また凝った 細かいことをコンピュタや接続機器にやらせたいとき、直接 勝手なプログラムでアプリ作成者にやらすことを許すと、状況が変わるとエラーになったりする恐れがありますが、APIでやれば統一されるので、MS側で責任を持ってくれるメリット があります。 「インターフェイス」は機械-機械、機械ソフト-機械ソフト、一般ソフト-一般ソフト、機械・一般ソフト-利用人間、人間-人間の間で使われる広い使途がありますが、本件では一般ソフト-一般ソフトのケースです。あと入出力機械の動作の制御を組んだプログラムのデバイス・ドライバやBIOSと言うプログラムがあります。アプリとこれらの橋渡しはAPIを使えば出来るのもあります。 (VBから使う一例) http://isweb8.infoseek.co.jp/school/speana_1/vb/vb_3/vb_3.htmより 'シリアルポートのオープン関数の定義 Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long(上記カッコ外は名前 CreateFile別名CreateFileA以外は共通形式になっています) 1つのAPIで出来ることは、人間の動作に例えれば一挙手 一動のようなレベルで、細かく分解されています。そのため にアプリ作成者はそのレベルで左右することか出きるメリットがあります。 http://www.ai-pub.co.jp/contents/book/cal/vba-win32api.htmlは本の紹介サイトですが、後半にどの程度のレベルの処理に使うか例示があります。あまり面白いと思うレベルではないでしょう。 MACにも「MacintoshのAPIであるToolBoxは数千もの命令から構成されている。これらの命令群は、プログラムがすべき機能のほとんどをカバーしている」とあり、似た働き仕組みがあるようです。
お礼
ご回答ありがとうございます。 APIについてはだいぶイメージがつかめてきました。
- sha-girl
- ベストアンサー率52% (430/816)
APIの中でもWindowsが標準でサポートするWin32 APIというものがあります。 普通にVBを使う分にはあまり意識しませんが、VBでグラフィックを書いたり 文字を表示したりするのは全てこのWin32 APIを介しています。 しかしVBの標準の機能だけではできない事があります。 例えばタスクトレイにアイコンをいれたい場合、これはWindowsの標準の機能ですが VB標準の関数だけではできません。 そういうときタスクトレイにアイコンをいれるAPIを直接呼び出せばVBで実現できるわけです。 DLLとは Win32 APIもWindowsフォルダのシステムの中にあるgdi32.dllやuser32.dllを呼び出しています。 当然自作する事もできます。DLLには規格があってそれに基づいていれば VB以外の言語からも呼び出せます。つまりどのプログラムからも再利用が可能な プログラムみたいな感じでしょうか。 OCXについてですが VBではテキストボックスとかありますよね? あの手のものをコントロールといって、要は部品みたいなものです。
お礼
ご回答ありがとうございます。 イメージがちょっとつかめてきました。
- haporun
- ベストアンサー率40% (230/562)
何の略かは調べてもうわかってますね。 APIはVBからすれば、外部関数です。 C++では当たり前のように使いますが、VBではいちいち使用を宣言しなければなりません。 VBでは標準でできないようなことが、API関数でできたりしますが、できないこともあります。 VBでAPIといえば、kernel32、user32、shell32などのDLLに入っている関数のことですが、一般にはもっと広い意味があります。 OCXはカスタムコントロールが入ったファイルです。 Windows Media PlayerとかInternet Explorerとか、実はけっこうOCXになっていて、そのままVBに貼り付けるだけである程度のことができたりします。 OCXは自分で作ったりもできます。 DLLはAPI関数が入っているのがほとんどですが、たまにVBから使えるクラスモジュールやカスタムコントロールが入っていることもあります。 OCXもDLLも実行ファイルとは別に外部ファイルにしておきます。 そうすれば、その機能をいろいろなアプリケーションが使えるようになり、容量削減にもプログラム作成の簡易化にも貢献します。 DLL=Dynamic Link Library ダイナミック=動的 動的にリンクというのは、ここでは実行時にリンクするという意味です。 動的の反対で静的にリンクするライブラリをStatic Libraryなどと言いますが、これはコンパイル時にリンクすると言うことです。 コンパイル時にリンクということは、実行ファイルの中にそれを含めてしまうと言うことで、関数などをコピーしてしまうと言うことです。 OCXも動的リンクです。 こんな説明で良いでしょうか。
お礼
ご回答ありがとうございます。 丁寧に説明していただいたのですが、勉強不足のせいかよく理解できません。 もう少し、勉強してみます。。。
- sukiyaki111
- ベストアンサー率13% (12/87)
http://www.e-words.ne.jp/もいいですよ。
- 参考URL:
- http://www.e-words.ne.jp/
お礼
アドバイスありがとうございます。 ど素人のせいか、上記サイトで調べてもイマイチイメージがつかめません。 具体例で教えていただけるとありがたいのですが。。。
ここで調べてみては? http://yougo.ascii24.com/
お礼
早々にご回答いただきありがとうございます。 上記サイトで調べてみましたが、抽象的な説明で今いちイメージがわきません。基本的用語なのかもしれませんが、わかりやすく教えていただけるとよりありがたいです。
お礼
ご回答ありがとうございます。 上記のBlueRayさんの説明、短いのにすごくイメージがつかめました♪ 紹介していただいたサイトも、DLLやOCXの説明はみつけられなかったものの、プログラミング全般について初心者にわかりやすく説明がされていて、うれしかったです。