?? 970908.asp
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>我想控制 I/O,VB 是否有類似 BASIC 的 Inp、 Out 指令可使用?</TITLE>
<META NAME="Author" CONTENT="KJ Wang">
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#808080" ALINK="#FF0000">
<H2 ALIGN=CENTER><FONT COLOR="#0000FF">我 想 控 制 I/O, VB 是 否 有 類
似 BASIC 的 Inp、 Out 指 令 可 使 用 ?</FONT>
<HR WIDTH="100%"></H2>
<TABLE>
<TR>
<TD ALIGN=CENTER VALIGN=TOP><IMG SRC="Q.gif" HEIGHT=29 WIDTH=21 ALIGN=CENTER></TD>
<TD VALIGN=TOP WIDTH="35"></TD>
<TD VALIGN=TOP><FONT COLOR="#FF0000">問題描述:</FONT>
<UL>
<P>VB 并 無 Inp 及 Out 的 指 令 可 用 , 即 使 是 Windows 的 API 也 沒
有 類 似 的 函 數 可 呼 叫 , 原 因 是 Windows 不 鼓 勵 您 直 接 控 制
硬 體 。 </P>
</UL>
</TD>
</TR>
<TR>
<TD VALIGN=TOP><IMG SRC="A.gif" HEIGHT=22 WIDTH=24></TD>
<TD VALIGN=TOP></TD>
<TD VALIGN=TOP>這 個 問 題 筆 者 經 常 被 問 , 最 近 已 經 到 了 無 法
忍 受 的 地 步 了 , 所 以 決 定 使 用 SDK(Software Development Kit) 及
組 合 語 言 撰 寫 一 個 類 似 Inp 及 Out 的 功 能 , 而 現 在 已 經 完
成 , 如 果 您 有 需 要 , 請 自 行 下 載 (下 載 前 請 先 閱 讀 <A HREF="#A">鄭
重 聲 明</A> )。
<P>下 載 後 , 解 壓 縮 可 得 到 InpOut.dll 檔 案 , 請 將 它 復 制 到
Windows 的 目 錄 , 然 後 在 VB 程 式 中 使 用 以 下 方 法 呼 叫 : </P>
<P>(1) 宣 告 以 下 函 數 , 并 且 將 他 們 放 在 .bas 的 一 般 模 組 中
: </P>
<UL>
<P>Declare Function Inp Lib "inpout.dll" (ByVal port As Integer)
As Integer<BR>
Declare Function Inpw Lib "inpout.dll" (ByVal port As Integer)
As Integer <BR>
Declare Function Inpd Lib "inpout.dll" (ByVal port As Integer)
As Long</P>
<P>Declare Sub Out Lib "inpout.dll" (ByVal port As Integer, v
As Integer) <BR>
Declare Sub Outw Lib "inpout.dll" (ByVal port As Integer, v As
Integer) <BR>
Declare Sub Outd Lib "inpout.dll" (ByVal port As Integer, v As
Long)</P>
<P>其 中 Inp/Out 用 來 輸 出 入 一 個 位 元 組 (Byte) 的 資 料 , Inpw/Outw
則 是 兩 個 位 元 組 (Integer)的 資 料 , Inpd/Outd 則 是 四 個 位 元 組
(Long)的 資 料 。 </P>
</UL>
<P>(2) VB 程 式 中 呼 叫 的 例 子 : </P>
<UL>
<P>Dim x As Integer <BR>
x = Inpw( port ) ' 讀 取 port 位 址 底 下 的 兩 個 位 元 組 <BR>
Outw port, x ' 輸 出 兩 個 位 元 組 到 port 位 址 底 下 </P>
</UL>
<P>以 上 的 Inp/Out 函 數 的 撰 寫 是 使 用 CPU AX 及 DX 暫 存 器 的 特
性 來 存 取 某 一 位 址 底 下 的 資 料 , 對 於 安 裝 有 驅 動 程 式 的
I/O 而 言 , 以 上 的 函 數 通 常 不 管 用 , 此 外 , 它 們 也 未 必 能
適 用 於 所 有 的 Windows 版 本 。 </P>
</TD>
</TR>
</TABLE>
<P><A NAME="A"></A><B><BLINK><FONT COLOR="#FF0000"><FONT SIZE=+2>鄭 重
聲 明</FONT></FONT></BLINK></B> : 由 於 直 接 控 制 CPU 的 暫 存 器 違
反 Windows 程 式 設 計 的 最 高 指 導 原 則 , 筆 者 無 法 預 測 呼 叫
Inp/Out 之 後 會 有 什 麼 後 果 , 因 此 , <B><FONT COLOR="#0000FF">不
負 任 何 損 害 電 腦 的 責 任 , 同 時 , 也 不 提 供 任 何 技 術 支 援</FONT></B>
, 想 知 道 本 程 式 是 怎 麼 撰 寫 的 , 請 自 行 參 閱 InpOut.c 及 InpOut.def
原 始 程 式 碼 。 </P>
<CENTER><P><B><FONT SIZE=+1><A HREF="inpout.zip">我已經讀過以上聲明,開始下載。</A></FONT></B></P></CENTER>
<CENTER><P>
<HR WIDTH="100%"> <FORM><INPUT type=button value= "上一頁" Onclick="history.back();"> <INPUT type=button value="kj首頁" onclick=" parent.location='http://www.kj.com.tw'"></FORM></P></CENTER>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -