wjf111
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2002-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:6050回复:9

怎样用VC++读写并口

楼主#
更多 发布于:2002-03-16 21:41
本人刚涉入开发程序行列,没有找到相关资料,恳请高手多多赐教。在下深表衷心感谢!

最新喜欢:

wm_createwm_cre...
huxiangming
驱动牛犊
驱动牛犊
  • 注册日期2002-03-14
  • 最后登录2002-06-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-17 13:57
一般来说,对于打印口1(LPT1):数据寄存器地址0x378,状态寄存器地址0x379,控制寄存器地址0x37A,对于打印口2(LPT2):数据寄存器地址0x278,状态寄存器地址0x279,控制寄存器地址0x27A。以LPT1为例:


BYTE nRead,nWrite;


nRead=_inp(0x379);//读状态寄存器


nWrite=0x80;


_outp(0x37A,nWrite);//向控制寄存器写0x80


_outp(0x378,nWrite);//向数据寄存器写0x80

jansen
驱动小牛
驱动小牛
  • 注册日期2001-10-21
  • 最后登录2007-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-18 20:08
带索引的端口的访问
BTYE bIndex,bData;
//Read I/O
_outp(0x3c4,bIndex);
bData = _inp(0x3c5);

//Wrtie I/O
_outp(0x3c4,bIndex);
_outp(0x3c54,bData);

_outp()和_inp()可以采用汇编语言定义一个函数
rich
boyinwind
驱动牛犊
驱动牛犊
  • 注册日期2001-05-04
  • 最后登录2004-04-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-03-21 14:58
在windows下可以利用 CreateFile和WriteFile对并口进行操作。应该注意,必须将DB25输入插座的11脚和12脚接地,否则,操作将不能顺利进行。此两脚分别对应打印机的BUSY和PE(纸尽)信号。 源程序如下:

...
HANDLE hFile;//定义文件句柄
CString m_LPTString=_T(\"LPT1\");
BYTE* pOut=new BYTE[16];
DWORD number; //获取文件句柄

hFile=CreateFile(m_LPTString, GENERIC_READ | GENERIC_WRITE,
                 0, NULL, OPEN_EXISTING, NULL, NULL);

//如果文件句柄无效
if(hFile==INVALID_HANDLE_VALUE)
{
    AfxMessageBox(\"Invalid LPT or LPT1 is not open\");
}
else
{
    for(int i=0;i<16;i++)
    pOut=\'a\'; //发送数据
    if(!WriteFile(hFile,pOut,16,&number,NULL))
    {
        AfxMessageBox(\"Fail to send data.\");
    }
    else
    {
        UpdateData(FALSE);
    }
}

//通知用户过程结束
Beep(800,600);

--阿风
wjf111
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2002-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-03-22 11:49
对于大家的帮助真是非常感谢!!!
wjf111
驱动牛犊
驱动牛犊
  • 注册日期2002-02-21
  • 最后登录2002-03-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-03-22 11:54
请问高手,如何做到消息驱动对并口的读?多谢!
whd123123
驱动牛犊
驱动牛犊
  • 注册日期2003-10-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-11-02 11:46
  看你楼上给位大虾的看法,真是获易良多。我也正在写并口驱动。

但是在win2000下不能用in 和out。只能构造iorang类。。 谁是这方

面的高手。一定要指教小弟下;;;qq22493208
崽崽
gxg_uestc
驱动牛犊
驱动牛犊
  • 注册日期2003-11-02
  • 最后登录2003-11-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-11-02 17:03
win2k下无法直接通过_inp(),outp()访问io端口。如果不用readfile()和writefile()的话,可以去网上down一些现成的驱动来调用。比如说有一个dll叫inpout32.dll,它提供两个函数inp32()和outp32(),调用这两个函数的话就可以写出在win9x/nt下通用的并口读写程序。给你两个有用的网址:www.logix4u.net
www.lvr.com/parport.htm
xiaxueyi
驱动小牛
驱动小牛
  • 注册日期2004-06-24
  • 最后登录2006-12-14
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望122点
  • 贡献值0点
  • 好评度122点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-24 14:19
如果用readFile和WriteFile应该如何操作?必须将11、12管脚接地吗?
wbfabc
驱动牛犊
驱动牛犊
  • 注册日期2005-03-15
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-03-16 11:16
inpout32.dll的源代码是怎么写的?有没有高手指点一下啊
呵呵
游客

返回顶部