我这里有一个并口打印机,是斑马的,我要像它发送指令来控制它打印,其实也就是向打印机发送一个字符串,如下所示
^XA
^PRC 
^LH0,0^FS
^LL400
^MD0
^MNY
^LH0,0^FS
^BY3,3.0^FO31,1^BCN,83,Y,N,N^FR^FD>93418161621171819202122^FS
^PQ1,0,0,N
^XZ
^FX End of job
^XA
^IDR:ID*.*
^XZ
哪位能给个例子

解决方案 »

  1.   

    www.vckbase.com的源码下载里有一并口类,你可以下载试试!
      

  2.   

    我正好用过这样的打印机,以下是我写的通讯的代码,希望对你有用
    HANDLE m_hCardInterFace;
    COMMTIMEOUTS m_CommTimeouts;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;
    }