I/OアクセスをVisual Basicから行いたい場合があります.たとえば,計測やデータ収集のボードなどを開発して,そのボードをBasicで制御をする場合です.MS-DOSなどでは一般的に使われた手法でした.しかし,Windows時代になりI/Oの制御をBasicから行うには,少し工夫が必要になりました.
ここでは,Visual C++でDLLやActiveXコントロールを開発して,Visual BasicからI/Oを制御するいくつかの方法を紹介します.プログラムのソースは,こちらから(180KB)ダウンロードしてください.
(1) Visual BasicからI/Oを制御 |
Visual BasicからI/Oを制御してスピーカのオン/オフを行ってみます.Visual Basicから,直接I/Oポートにアクセスすることはできません.ここでは,Visual BasicからI/Oを制御するために,シンプルなDLLをVisual C++で開発します.そのDLLを経由してPCのI/OをVisual Basicから制御します.
Visual C++でDLLを作る
C++でDLLを作る方法は,どの処理系を使ってもほぼ同じです.筆者は普段,C++ Builder使う機会が多いのですが,Visual C++のユーザーが多いだろうと考え,今回はVisual C++でDLLを開発することにしました.開発したDLLをVisual Basicに結びつける方法なども説明します.Visual C++でDLLを開発する方法を説明しますが,I/O制御に比重を置いた説明を行います.
まず,「ファイル」→「新規作成」を選び,「新規作成」ダイアログの「プロジェクト」タブの「Win32 Dynamic- Link Library」を選びます(図1-1).
新規作成のダイアログではプロジェクト名などの入力も行います.これを選べばDLLを作成する準備ができます(図1-2).
次にIo.cppとIo.hをプロジェクトへ追加します.追加作業は,新規追加して,直接ソースプログラム入力するか,あるいは,使い慣れたエディタで入力して,後でプロジェクトに追加してもかまいません(図1-3,図1-4).
Io.cppはDLLの本体です.リスト1-1にIo.cppのソースを示します(*).DllMainはDLLに必要なエントリです.DllMainは,プロセスに接続/解放された場合や,スレッドに接続/解放された場合に制御が渡ってきます.スレッドなどで初期設定が必要なら,この中にコードを追加します.ここでは,そのような操作は...
以下略
// // Io.cpp // // #include |
copyright 1999 北山洋幸