No.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等の関数使用時に「これから使いますよ。」と言う定義です。
参考URL:http://www.ab.wakwak.com/~greenspace/dev-api/the …
ご回答ありがとうございます。
上記のBlueRayさんの説明、短いのにすごくイメージがつかめました♪
紹介していただいたサイトも、DLLやOCXの説明はみつけられなかったものの、プログラミング全般について初心者にわかりやすく説明がされていて、うれしかったです。
No.5
- 回答日時:
取りあえず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/ …より
'シリアルポートのオープン関数の定義
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-wi …は本の紹介サイトですが、後半にどの程度のレベルの処理に使うか例示があります。あまり面白いと思うレベルではないでしょう。
MACにも「MacintoshのAPIであるToolBoxは数千もの命令から構成されている。これらの命令群は、プログラムがすべき機能のほとんどをカバーしている」とあり、似た働き仕組みがあるようです。
No.4
- 回答日時:
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ではテキストボックスとかありますよね?
あの手のものをコントロールといって、要は部品みたいなものです。
No.3
- 回答日時:
何の略かは調べてもうわかってますね。
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も動的リンクです。
こんな説明で良いでしょうか。
ご回答ありがとうございます。
丁寧に説明していただいたのですが、勉強不足のせいかよく理解できません。
もう少し、勉強してみます。。。
No.2
- 回答日時:
アドバイスありがとうございます。
ど素人のせいか、上記サイトで調べてもイマイチイメージがつかめません。
具体例で教えていただけるとありがたいのですが。。。
No.1
- 回答日時:
早々にご回答いただきありがとうございます。
上記サイトで調べてみましたが、抽象的な説明で今いちイメージがわきません。基本的用語なのかもしれませんが、わかりやすく教えていただけるとよりありがたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
OCXって何ですか?
Visual Basic(VBA)
-
ActiveX DLL と ActiveXコントロールの違い
Visual Basic(VBA)
-
ソースから参照しているOCXの一覧を確認する方法
Visual Basic(VBA)
-
-
4
VB6.0でのOCX・DLLの作り方
Excel(エクセル)
-
5
DLLやOCXなどの格納先は必ず「C:\\WINDOWS\\system32」?
Windows Vista・XP
-
6
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
7
VB.NETでActiveX(OCXファイル)作成
Visual Basic(VBA)
-
8
VB6.0(SP6)にて開発を行なっています。参照設定に関して教えてく
IT・エンジニアリング
-
9
OCXが読み込めない
Visual Basic(VBA)
-
10
Subversionのリポジトリの削除
その他(プログラミング・Web制作)
-
11
DLLをREGSVR32しないで利用する方法について。
Visual Basic(VBA)
-
12
DLLとCOMの違い
その他(ソフトウェア)
-
13
VB 6 を VS 2012に変換するには?
Visual Basic(VBA)
-
14
VB6のプロジェクトロードエラーについて
Visual Basic(VBA)
-
15
値を返さないコード パス
Visual Basic(VBA)
-
16
regsvr32でActiveX登録を行ったocx
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラミング誰か教えて...
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
現在プログラミングの研修中な...
-
C++で何ができるのでしょうか?
-
Cからgzip圧縮について
-
自動で施設の空きを通知するプ...
-
Timerイベントについて
-
Webプログラムを外注した場合の...
-
i,j,k
-
プログラミングのスキル
-
VisualBasic.NETとVisual C++....
-
VBで暗号化した文字列をJavaで...
-
Cプログラムの解析(関数の呼び...
-
VB.net エラーメッセージを英文...
-
MS-DOSで作ったBASICプログラム...
-
C/C++でチャットソフトを作りた...
-
全豊田作業責任者
-
機械工学専攻の院卒でSEになる...
-
Excelで用語辞典を作成するには?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
C言語のHP-UXからLinuxへのポ...
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
SNMPトラップ情報をC#.netで作...
-
現在プログラミングの研修中な...
-
VB.net エラーメッセージを英文...
-
Cプログラムの解析(関数の呼び...
-
OSとCPUの関係について
-
コンソールアプリでファイル選...
-
出欠表のプログラム制作の難易...
-
プログラムとは理系ですか文系...
-
CoInitializeSecurityが失敗する
-
Ryzen 3700(無印)はWin11に対応...
-
VC++で単機能ブラウザを作...
-
EXCEL-VBAのプログラムを移植し...
-
C#のプログラムを読むコツって...
-
Perl5とActivePerl
-
ニンテンドーDS用、自作プロ...
おすすめ情報