VBでのハンドルの使い方

このQ&Aのポイント
  • VBでハンドルを使う方法とは?
  • ハンドルの具体的なプログラムの使い方
  • VBにおけるハンドルの基本的な使い方とよく使う例
回答を見る
  • ベストアンサー

VBでのハンドルの使い方

VBのAPIの勉強をしている初心者です ハンドルの説明で 「コンピュータはデータを扱うときは、必ずそのデータを保存しておく場所をメモリ上に用意します。そのときに、メモリのどの部分に保存したかが分かれば、そのデータを扱うことができます。これがハンドルです。ここでは、変数のような言い方をしましたが、サブルーチンでも何でも、メモリのどこに存在しているかがわかれば使えますので、サブルーチンなどの保存している場所(を保存している変数?)のこともハンドルと呼ぶようです。 」 と解説されている方がいました。 ハンドルがどういうものかはだいたいこれでわかりますが 具体的にプログラムを書くときはどういう使い方をするのでしょうか? なるべく基本的な使い方やよく使う例を教えていただけないでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • ryu_d
  • ベストアンサー率58% (33/56)
回答No.1

APIのプログラムを勉強されているという事ですがハンドルがないとAPIはほとんど使えません。 APIに限らず open xxxx For Random As #1とかってVBだと書きますよねこれもハンドルです。 通常ファイルハンドルとか言いますけど。 さらにAPIの例としてGetWindowDCとかいう関数を使う場合でもハンドルを指定しています。 GetWindowDC(xxx) xxxのところにウィンドウのハンドルを指定しなさいと言われますよね? 基本的な使い方というよりハンドルがないとほとんどの関数を呼び出せません。 したがってよく使う例というとほぼ全部ということになります。 さらにVBのAPIという表現は実のところ正解ではありません。 APIとはOSがアプリケーションに対して公開しているインタフェースをさすものですからVBのという表現は間違いになります。 VBからは直接Win32APIは呼べませんしたがってDeclareで定義して外部から呼び出しているに過ぎません。 ということですので、意識されてないかもしれませんがgoo23111さんもハンドルを使っているはずです。 これで回答になっていますでしょうか? はずしていたらごめんなさい。

関連するQ&A

  • VBで画面保存

    教えて下さい。 VBで画面をBMPとかに保存するようなアプリを作成したいのですが、 簡単に可能なものなんでしょうか? そのようなAPIは用意されてるんでしょうか? 何か簡単に作成できれば、サンプルをご教示頂きたいと 思います。 宜しくお願い致します。

  • VB2010でのAPIの使い方を教えてください。

    お世話になります。VB初心者です。ごくごく基本的なことを教えてください。 VB2010にて、PCとUSBを介して繋がっている機器からデータのやり取りを行おうとしています。 そのためのAPIが、機器メーカから***.dllという形で提供されています。同様に、これを使ったサンプルソフトもついているのですが、VB6で作ったものなので、VB2010ではそのまま使えません。 このAPIには、USBポートのOpen/CloseやRead/Writeなどの関数があるので、これを使いたいのですが、具体的にプログラム上で、どういうふうに定義(?)すればいいのでしょうか? APIの仕様書には、「API 使用時には ***.h をインクルードして使用してください→#include “***.h”」、「リンク時には、***.lib もリンクしてください」などと書かれています。 まだ、VB2010を勉強し始めたばかりなので、こういう基本的な部分がわかっていません。 お教えいただけると助かります。よろしくお願いします。

  • VBとAPI のからませかた?

    VBをはじめて2週間位になりましたが、  疑問が沸いてきました。 "API"です。 これの使用方法についてわかりやすく解説してくださっているHPを知っておられる方、ぜひ教えてください。 ちなみに どんな機能を使いたいか、  ・音楽再生  ・システム表示  メモリ情報 ユーザー名 など。

  • VB.NET経験者のVB6.0使用感について。

    こんばんは。 VB.NET経験1年程度の学生ですが、今度VB6.0を使ってプログラムを作ることになりました。 私はVB6.0は未経験なのですが、使用感はかなり違うのでしょうか?変数の宣言の方法や存在しない関数など初歩的な部分でありましたら教えてください。 またVB.NETであるコマンドの補完機能はVB6.0でもありますよね? よろしくお願いします。

  • デバイスハンドルとは?

    現在PCMCIAカードを使って、シリアル通信のプログラムを作成中です。 市販品なので、サンプルプログラムがあり、 サンプルの中にはシリアル通信するための関数(C言語)が多々あります。 その関数を呼び出すときにどれもデバイスハンドルのポインタ情報が入っている変数を 含んでいるようです。 (コンピュータの内部には詳しくなく、日本語がおかしいかもしれません) 例えば、aがデバイスハンドルのポインタで関数がFだとすると、メインでは F(a) となっております。 このデバイスハンドルというのはどういうものなのでしょうか? またこの場合のデバイスハンドルはどのように調べれば値がわかるのでしょうか? (Windowsのシステム情報を見れば分かる等) もし情報が足りなければ補足いたします。 よろしくお願いいたします。

  • VBでのAPI

    いつもお世話になっています。 今回初めて、APIを使うVBのプログラミングをしているんですが、サーバからのファイル名取得でつまずいています。 long型変数 = FtpFindFirstFile(セッション番号, ディレクトリパス, str型変数, 0, 0) って感じで、何かしらファイルが存在するかどうかは戻り値で判定できるのですが、ファイル名自体が取得できません。(複数ファイルが存在するときは、どれか一つのファイル名が取得できれば問題ないです) いろんなサイトを調べたのですが、「引数の文字列変数に"情報"が取得される」ようなふうに書かれており、はっきりしません。ちなみに私の作成中のPGでは、引数の文字列変数は何も格納なれない状態です。 どなたか詳しい方、教えてくれませんか?

  • VB.NETでアクセス。

    VB.NETでアクセスのデータを操作しようとしています。その際に『新規作成』というボタンを用意して、押すとデータが追加されるようにしたいのですが、やり方がわかりません。 プログラムが立ち上がった時にはアクセスのデータは用意されていて接続時済みでいくつかレコードがある状態です。

  • Winsockを使わずにVBでSocketを利用したい

    Winsockを使わずにVBでSocketを利用したいと考えています.事情がありましてコンポーネントを使わずにSocket通信でサーバープログラムと通信を行いたいです. APIなどでSocket関係の関数は用意されているのでしょうか? 宜しくお願いします. OS:Windows2000+SP4 Visual Basic 6.0+SP5

  • c言語で作成したデータをwindowsのアプリ(VB6で作成)で読み取りたいのですが

    VBで作成したアプリの中の変数の値をC言語で作成したプログラムで参照したり、C言語の変数(メモリの値)をVBのアプリで参照したいのですが、どのようにすればいいのでしょうか。 よろしくお願いします。

  • VB.NETからエクセルを起動して、エクセルでVBを閉じたい。

    こんにちは。 先日、エクセルのフォームを最前面に配置したいという 質問をさせて頂いたものでございます。 それで、SetWindowPosのAPIで設定する方法を教えて頂いたのですが、 最前面にする事は出来たのですが、フォームを動かすと ブックはその一つ下に現れてしまい、 ブックを最背面に配置するなどを試みてみたのですが、 どうもうまく行かないので、 エクセルから直に立ち上げることが出来ないようにして VB.NETのフォームを作ってエクセルにデータを送ろうかと思いました。 それで、データを送る方法は何とかなりそうなのですが、 VB.NETのフォームからエクセルを起動して、 次にエクセルからそのフォームを出したり、隠したりしたいのですが、 その場合、VB.NETのフォームのなんと言うハンドルを取得すればよいでしょうか? IDにも色々あるようで、どれを使えばよいのか分からなくなってしまいました。 そのIDはVBのフォームを起動した時に、エクセルと共有するiniファイルなどに、書き込んでおこうかと思っています。 よろしくお願いいたします。m(__)m

専門家に質問してみよう