求直接操作并口打印机的代码

mmit 2006-08-20 10:00:53
用winio或其他方式都可以,C++BUILDER的
...全文
350 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mmit 2006-08-21
  • 打赏
  • 举报
回复
其实自己控制并口打印机是非常麻烦的,最主要的是需要考虑时序问题!
--------------------------------------------
直接用fopen("lpt1","wb")的方法操作并口,是否高效易行?会不会受到打印驱动程序的阻扰?
BenLeak 2006-08-21
  • 打赏
  • 举报
回复
其实自己控制并口打印机是非常麻烦的,最主要的是需要考虑时序问题!
柯本 2006-08-21
  • 打赏
  • 举报
回复
另外,打印端口(一般base为0x378)各IO地址的功能为:
Base + 0 :
NAME:Data Port
I/O:Write
Bit 7 Data 7 (Pin 9)
Bit 6 Data 6 (Pin 8)
Bit 5 Data 5 (Pin 7)
Bit 4 Data 4 (Pin 6)
Bit 3 Data 3 (Pin 5)
Bit 2 Data 2 (Pin 4)
Bit 1 Data 1 (Pin 3)
Bit 0 Data 0 (Pin 2)

Base + 1:
NAME:Status Port
I/O:Read Only
Bit 7 Busy
Bit 6 Ack
Bit 5 Paper Out
Bit 4 Select In
Bit 3 Error
Bit 2 IRQ (Not)
Bit 1 Reserved
Bit 0 Reserved

Base + 2
NAME:Control
I/O:Read/Write
Bit 7 Unused
Port Bit 6 Unused
Bit 5 Enable bi-directional Port
Bit 4 Enable IRQ Via Ack Line
Bit 3 Select Printer
Bit 2 Initialize Printer (Reset)
Bit 1 Auto Linefeed
Bit 0 Strobe
vc8fans 2006-08-21
  • 打赏
  • 举报
回复
用API?
柯本 2006-08-21
  • 打赏
  • 举报
回复
winio自己有一个ex:winiotest.cpp就有对打印机控制端口的读/写,非常简单
...
bResult = InitializeWinIo();

if (bResult)
{
// Under Windows NT/2000/XP, after calling InitializeWinIo,
// you can call _inp/_outp instead of using GetPortVal/SetPortVal

GetPortVal(0x378, &dwPortVal, 4);

SetPortVal(0x378, 10, 4);
...
关键是你要对打印机的端口做什么

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧