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も見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
遅刻の「言い訳」選手権
よく遅刻してしまうんです…… 「電車が遅延してしまい遅れました」 「歯医者さんが長引いて、、、」 「病院が混んでいて」 などなどみなさんがこれまで使ってきた遅刻の言い訳がたくさんあるのではないでしょうか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
【お題】 ・このサンタクロースは偽物だと気付いた理由とは?
-
OCXって何ですか?
Visual Basic(VBA)
-
VB.NETでActiveX(OCXファイル)作成
Visual Basic(VBA)
-
ActiveX DLL と ActiveXコントロールの違い
Visual Basic(VBA)
-
-
4
regsvr32で登録された一覧を知りたい
UNIX・Linux
-
5
DLLとCOMの違い
その他(ソフトウェア)
-
6
ActiveXコントロールを.NETにインポートできない???
C言語・C++・C#
-
7
exeファイルの中身を見ることは可能ですか?
フリーソフト
-
8
VB6.0でのOCX・DLLの作り方
Excel(エクセル)
-
9
WIN32でOCXを利用する方法を教えて下さい!
C言語・C++・C#
-
10
VBの画面サイズについて
Visual Basic(VBA)
-
11
ソースから参照しているOCXの一覧を確認する方法
Visual Basic(VBA)
-
12
VC++からのocxの使用方法
C言語・C++・C#
-
13
DoEventsがやはり分からない
Visual Basic(VBA)
-
14
Form_Load と Form_Activate のタイミング
Visual Basic(VBA)
-
15
ActiveXコントロールのHTMLへの貼り付け方その2
C言語・C++・C#
-
16
DLLやOCXなどの格納先は必ず「C:\\WINDOWS\\system32」?
Windows Vista・XP
-
17
Shapeコントロールの.NET移行方法
Visual Basic(VBA)
-
18
CloseとDisposeの違い
Visual Basic(VBA)
-
19
C# インスタンスの破棄
その他(プログラミング・Web制作)
-
20
.NETでActiveXコントロールを使う
その他(開発・運用・管理)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このプログラミング誰か教えて...
-
FORTRAN でプログレスバーを作る
-
バージョンのつけ方
-
API、OCX、DLLって何でしょう?
-
VBプログラムをEXCEL VBAに移植...
-
全文検索
-
Cからgzip圧縮について
-
OSとCPUの関係について
-
たびたび表示される”CGI Error”
-
出欠表のプログラム制作の難易...
-
ASPをマスターしたい!
-
全豊田作業責任者
-
1年無職の彼氏 別れるべきですか?
-
Wordpressでコーポレートサイト...
-
パソコン 資格について。
-
F1エンジニアとF1メカニック
-
HTML 特殊文字の タブ:	...
-
Excelで用語辞典を作成するには?
-
6~7割の正解で、なぜ合格?
-
SOHOで生計をたてる事に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
API、OCX、DLLって何でしょう?
-
Ryzen 3700(無印)はWin11に対応...
-
VBプログラムをEXCEL VBAに移植...
-
C言語のHP-UXからLinuxへのポ...
-
サイクロイドの軌跡
-
SNMPトラップ情報をC#.netで作...
-
バージョンのつけ方
-
コンソールアプリでファイル選...
-
VB.net エラーメッセージを英文...
-
UNIX環境でのCプログラム上でC...
-
VBS:コンピュータ名を取得し、...
-
MS-DOSで作ったBASICプログラム...
-
ニンテンドーDS用、自作プロ...
-
ランチャーの作り方について教...
-
Perl5とActivePerl
-
SEってなに?
-
プログラムの作り方
-
AIなんて所詮人間のプログラ...
-
VB2005の自作ブログラムをWin10...
-
stdio.hのバッファについて。
おすすめ情報