IO入出力DLLダウンロードページ

 結局、いい見出しが思いつかなかったので、堅苦しい見出しにしてみたぞ。
 で、今まで俺のロボットの制御OSはN88BasicやC言語だったのだが、会社でエクセルのマクロをいじるようになってから、結構いろいろなことができることに気が付いた。
 努力と根性があればDirectXプログラミングもできるのだ!
 そういうのを無駄な努力って言うんだけれどね。
 さて、そういうわけで、エクセルで動かすことにしたのだけれど、エクセルで動かすにはDLLを呼び出す必要がある。
 DLLって言うのは、ウインドウズを動かしているファイルの入っているシステムフォルダに「〜.DLL」なんて名前のファイルが入っているんだが、そんなの。
 そいつの力を借りて、マクロを動かすことでマクロは無駄な努力によりいろいろな可能性が生まれる。
 無駄な努力だから、VBを買うお金があったらVBを買ったほうがいいけれど。
 いいかい?これは経験者の言葉だよ?
 閑話休題、それで、今回はそのDLLの中の、I/Oポート入出力のDLLが見つからなかったので、自作した。
 こればっかりはVC++でしか作る方法が分からなかったので、VC++を持っていなかったら、ここに使い方の説明を書いておくから持っていくといいよ。
 でも、使うときは個人の責任でやってね。
 あと、現段階ではWindows2000とかXPでは動かないから最新のパソコンで動作できることは期待しないほうがいいね。
 無論、これを使っておたくの何かがえらい事になっても俺は知らないからね。
 個人の責任でいじってね。
 その辺の問題を解決できるか、もうちょっと調べてみるよ。
 GE7io.DLLダウンロード

GE7io.DLLのソースコード

CPPファイル↓

#include
_declspec(dllexport) void _stdcall OutPort(long PortNumber,long Data){
_outp(short(PortNumber),int(Data));
return;
}
_declspec(dllexport) long _stdcall InPort(long PortNumber){
return(long(_inp(short(PortNumber))));
}
DEFファイル↓

EXPORTS
OutPort
InPort

使い方

 システムフォルダ(例えば、C:\windows\systemだとかC:\windows\system32)にあのDLLファイルを放り込む。
 エクセルで使うときは、先に標準モジュールあたりで
 Declare Function InPort Lib "GE7io" (ByVal Port as Long) as Long
 Declare Sub OutPort Lib "GE7io" (ByVal Port as Long , ByVal Data as Long)
 と言う2行の文を書いて、「GE7io.DLLの中のInPort命令とOutPort命令を使うよ」と宣言しておくのだ。
 その辺の詳しい事はAPIの使い方でも調べてくれ。
 ちなみにAPIが何の略なのか、俺は良く知らない。
 で、出力のときは、
 OutPort &h378,5
 って書くと、&h378番のポート、つまりプリンタポート(この辺の数字は自分で本でも探したりして調べる必要がありそうだ)に、「5」を二進数で表した数(00000101)で、データの出るピンの一番右と右から二番目から発光ダイオードが光るくらいの電流がでろでろ流れるようになる。
 データの入力のときは、
 Dim intA as Integer
 intA = InPort(&h378)
 って書くとプリンタポートのデータの出て行く端子の電流の出ている部分がどこか、それが10進数になって、変数intAに入る。
 とりあえず、今はこんなところかな。

戻る