买了根USB-并口的线,想通过USB口把数据写到别的设备里面(那个设备当然是用并口接受数据啦)。把线插到USB口后,能识别出这个设备来,用/NTDDK/SRC/WDM/USB/USBVERFY/USBVERIFY.EXE程序也能识别出这个设备。
可是我不知道该怎样往这个USB口写数据?

解决方案 »

  1.   

    用ceratefile(),writefile()等API函数实现数据通讯!可是在createfile()里面需要一个设备名称的东西!我怎样得到USB的名称就象“串口的COM1”?
      

  2.   

    记得还有几个API可以得到,具体的名字忘了
      

  3.   

    USB-并口并口线那其实是虚拟出一个并口出来。装上他自带的驱动,就按照并口操作就可以了
    用API和串口一样,用CREATEFILE.READFILE,WRITEFILE等
    给你个例子
    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;
    }从并口读用readfile(),网上也可以找到例子,用法都差不多
      

  4.   

    参考http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=195278
      

  5.   

    这个更好啊!http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=61527