我现在急需编写一个并口控制的软件,可到处都找不到例子,那位大侠能帮帮忙?
我vc刚入门,那位大侠能给个例子看看!我的email: keendawn@163.com
问题点数:0、回复次数:8Top
1 楼nanjianhui(nan)回复于 2003-11-04 16:13:44 得分 0
我记得在www.vchelp.net上面有一个并口类,你可以用它来从并口发送,接收数据。Top
2 楼gioc(射天狼)回复于 2003-11-04 18:00:48 得分 0
我的程序要求很简单,我想自己编一个简单的驱动就可以了,但不知怎么下手。
www.vchelp.net没有,http://www.vckbase.com/有一个,我下了,可一打开就出错,打不开,看不了,气死。。Top
3 楼pheavecn(C超)回复于 2003-11-05 11:51:44 得分 0
我是直接访问I/O。
asm{
mov dx,0x378
in al,dx
mov char,al
}
在win2000下需要编一个驱动来获得直接访问I/O的权限。Top
4 楼zhangnanonnet(鱼欢)回复于 2003-11-05 13:15:41 得分 0
extern "C" bool PASCAL Link() //连接到打印机
{
m_hCardInterFace =
CreateFile("LPT1",
GENERIC_WRITE,
NULL,NULL,
OPEN_EXISTING,
NULL,
NULL);
if(m_hCardInterFace!=INVALID_HANDLE_VALUE)
{
m_CommTimeouts.ReadIntervalTimeout = 1000;//读操作两个字节之间的时间(单位:毫秒)
m_CommTimeouts.ReadTotalTimeoutMultiplier = 1000;//读操作的时间(单位:毫秒)
m_CommTimeouts.ReadTotalTimeoutConstant = 1000;
m_CommTimeouts.WriteTotalTimeoutMultiplier = 1000;
m_CommTimeouts.WriteTotalTimeoutConstant = 1000;
SetCommTimeouts(m_hCardInterFace, &m_CommTimeouts);
return true;
}
return false;
}
extern "C" void PASCAL Unlink() //断开打印机
{
CloseHandle(m_hCardInterFace);
}
bool SendCommand(CString CommandWord) //向打印机发出命令,并且返回命令状态
{
DWORD t1,dwRead;
COMSTAT t2;
CString Command=0x1b;
Command+=CommandWord;
Command+=0x0d;
WriteFile(
m_hCardInterFace,
Command.GetBuffer (Command.GetLength ()),
Command.GetLength (),
&dwRead,
NULL);
if(!ClearCommError(m_hCardInterFace,&t1,&t2))
{
switch(t1)
{
case CE_OOP:
TRACE("G CE_OOP\n");
return false;
break;
case CE_PTO://超时错误
TRACE("G CE_PTO\n");
return false;
break;
case CE_IOE:
TRACE("G CE_IOE\n");
return false;
break;
}
}
return true;
}
这是通过并口控制打印机的最简单的例子,用API来读写并口,其实和串口是一样的Top
5 楼gioc(射天狼)回复于 2003-11-06 08:19:46 得分 0
谢谢楼上的,我来试试看!Top
6 楼ljzcom()回复于 2003-11-06 08:27:00 得分 0
有专门的并口类的,你用GOOGLE搜并口类看看
Top
7 楼tyzyx(疯狂的人生)回复于 2003-11-06 09:15:50 得分 0
vckbase 上有现成的例子Top
8 楼tyzyx(疯狂的人生)回复于 2003-11-06 09:16:24 得分 0
我试过好用的。Top




