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も見ています
-
【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
ロボットの住む世界で流行ってる罰ゲームとは?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
OCXって何ですか?
Visual Basic(VBA)
-
ActiveX DLL と ActiveXコントロールの違い
Visual Basic(VBA)
-
VB.NETでActiveX(OCXファイル)作成
Visual Basic(VBA)
-
-
4
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
5
DLLとCOMの違い
その他(ソフトウェア)
-
6
ActiveXコントロールを.NETにインポートできない???
C言語・C++・C#
-
7
DLLやOCXなどの格納先は必ず「C:\\WINDOWS\\system32」?
Windows Vista・XP
-
8
VB6.0でのOCX・DLLの作り方
Excel(エクセル)
-
9
regsvr32で登録された一覧を知りたい
UNIX・Linux
-
10
VBの画面サイズについて
Visual Basic(VBA)
-
11
ソースから参照しているOCXの一覧を確認する方法
Visual Basic(VBA)
-
12
ActiveXコントロールの開発環境からのデバッグ方法
Visual Basic(VBA)
-
13
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
14
ActiveXコントロールのHTMLへの貼り付け方その2
C言語・C++・C#
-
15
WIN32でOCXを利用する方法を教えて下さい!
C言語・C++・C#
-
16
DLLをREGSVR32しないで利用する方法について。
Visual Basic(VBA)
-
17
VB2005でOCXを動的に呼び出すには?
Visual Basic(VBA)
-
18
Shapeコントロールの.NET移行方法
Visual Basic(VBA)
-
19
DLL参照時に指定されたモジュールが見つかりません。(HRESULT からの例外 0x8007007E) が発生してしまう。
C言語・C++・C#
-
20
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
プログラムの作り方
-
VBプログラムをEXCEL VBAに移植...
-
SNMPトラップ情報をC#.netで作...
-
MS-DOSで作ったBASICプログラム...
-
ニンテンドーDS用、自作プロ...
-
音楽用シーケンス・ソフトを自...
-
ゲームを作成したい
-
VBS:コンピュータ名を取得し、...
-
どうすれば本格的なGUIプログラ...
-
プログラム解析について
-
メールマガジン発行について
-
Ryzen 3700(無印)はWin11に対応...
-
stdio.hのバッファについて。
-
Webプログラムを外注した場合の...
-
Windows と WindowsVista の違...
-
1年無職の彼氏 別れるべきですか?
-
機械工学専攻の院卒でSEになる...
-
使えるタグ、使えないタグ、使...
-
独学で色彩検定 いきなり1級は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
Ryzen 3700(無印)はWin11に対応...
-
VB.net エラーメッセージを英文...
-
VBプログラムをEXCEL VBAに移植...
-
コンソールアプリでファイル選...
-
VBS:コンピュータ名を取得し、...
-
UNIX環境でのCプログラム上でC...
-
SNMPトラップ情報をC#.netで作...
-
変数の大きさを超える代入
-
Perl5とActivePerl
-
プログラミング 素数か素数では...
-
私は23歳です 新たにプログラ...
-
VB2005の自作ブログラムをWin10...
-
ソフトイーサ開発者(登大遊 氏)...
-
小中学校でプログラミングなん...
-
ASPとASP.NET両方の...
-
JCA手順
-
プログラム言語の種類
-
i,j,k
-
C言語のHP-UXからLinuxへのポ...
おすすめ情報