
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で質問しましょう!
似たような質問が見つかりました
- 大学受験 参考書の勉強法について質問なのですが、参考書を一通り終わらせて、二周目を行う際、問題だけ解けば良いで 2 2023/06/30 20:19
- 作詞・作曲 この曲のジャンルを教えてください! 3 2022/05/05 02:52
- 化学 立体化学での質問です。 「メソ体は、不斉炭素が偶数で、分子内に鏡映面がある化合物である。」 といった 2 2022/06/24 02:34
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
- ビデオカード・サウンドカード スペックが足りているはずなのにゲームがカクつく 5 2022/11/22 12:19
- 就職 就活についての質問です。 2024年卒の大学3年生です。 就活が近づいてきているのを感じ、合同説明会 1 2022/04/06 17:45
- 幼稚園・保育所・保育園 保育園のお母さん 1 2023/03/24 11:25
- 教えて!goo ある料理系の質問が削除される理由が不明です……。 6 2023/06/26 21:28
- 日本語 「~と聞きました」と「~と言われました」の違いは? 5 2022/12/22 18:02
- 大学受験 現代文について教えください。 問題 傍線部1「科学的方法」とあるが、それは具体的にいうとどのような方 3 2022/10/16 20:31
このQ&Aを見た人はこんなQ&Aも見ています
-
OCXって何ですか?
Visual Basic(VBA)
-
VB.NETでActiveX(OCXファイル)作成
Visual Basic(VBA)
-
ActiveXコントロールを.NETにインポートできない???
C言語・C++・C#
-
-
4
ActiveX DLL と ActiveXコントロールの違い
Visual Basic(VBA)
-
5
VB6.0でのOCX・DLLの作り方
Excel(エクセル)
-
6
regsvr32で登録された一覧を知りたい
UNIX・Linux
-
7
.NETでActiveXコントロールを使う
その他(開発・運用・管理)
-
8
DLLとCOMの違い
その他(ソフトウェア)
-
9
COMコンポーネントって何?
Visual Basic(VBA)
-
10
コモンダイアログコントロールがコンポーネントにありません
Visual Basic(VBA)
-
11
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
12
カスタムコントロールのOCAファイルについて
Visual Basic(VBA)
-
13
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
14
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
15
意味不明の実行時エラーで困っています
その他(プログラミング・Web制作)
-
16
ソースから参照しているOCXの一覧を確認する方法
Visual Basic(VBA)
-
17
C#において、同じインスタンスを何度もnewしてよいでしょうか。
その他(プログラミング・Web制作)
-
18
[Java] Edgeでのアドレスバー非表示について
JavaScript
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラマの人件費
-
C#のプログラムを読むコツって...
-
エクセルVBAでできる?
-
CoInitializeSecurityが失敗する
-
API、OCX、DLLって何でしょう?
-
プログラミングをしているの方...
-
システムコールはアセンブリプ...
-
BiilderとD-Show フレームレー...
-
プログラム開発で、「エクスプ...
-
DLLってなに?
-
VBプログラムをEXCEL VBAに移植...
-
i,j,k
-
サイクロイドの軌跡
-
バージョンのつけ方
-
VBS:コンピュータ名を取得し、...
-
Perl/CGIプログラムとPHPプログ...
-
javaを楽しむためには
-
1年無職の彼氏 別れるべきですか?
-
よくページが移転しましたを見...
-
スタイルシートの指定に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
Ryzen 3700(無印)はWin11に対応...
-
SNMPトラップ情報をC#.netで作...
-
バージョンのつけ方
-
コンソールアプリでファイル選...
-
OSとCPUの関係について
-
VBのフリーウェアについて
-
Sleep命令で指定した待機時間が...
-
ニンテンドーDS用、自作プロ...
-
CoInitializeSecurityが失敗する
-
Perl5とActivePerl
-
VB.net エラーメッセージを英文...
-
C#のプログラムを読むコツって...
-
ASPとASP.NET両方の...
-
winsockへの疑問
-
言葉について教えてください
-
VisualBasic習得に必要な知識
-
VBで暗号化した文字列をJavaで...
-
ドコモのソフトウェア更新について
おすすめ情報