问题描述
请教一下,使用C#调用POSDLL.dll使用佳博打印的问题OPOSOPOS=newOPOS();boola=OPOS.OpenUSBPort("USB001");publicboolOpenUSBPort(stringUSBPortName){POS_IntPtr=POS_Open(USBPortName,0,0,0,0,POS_OPEN_BYUSB_PORT);if((int)POS_IntPtr!=-1)returntrue;elsereturnfalse;}[DllImport("POSDLL.dll",CharSet=CharSet.Ansi)]publicstaticexternIntPtrPOS_Open([MarshalAs(UnmanagedType.LPStr)]stringlpName,uintnComBaudrate,uintnComDataBits,uintnComStopBits,uintnComParity,uintnParam);不管杂样都是不成功,都是返回-1我查看了控制面板中的打印机端口是USB001打印机型号为:佳博2120TF打小便签
解决方案
解决方案二:
///<summary>///打开POS机的端口开始会话///</summary>///<paramname="lpName">///指向以null结尾的打印机名称或端口名称。///当参数nParam的值为POS_COM_DTR_DSR、POS_COM_RTS_CTS、POS_COM_XON_XOFF或POS_COM_NO_HANDSHAKE时,“COM1”,“COM2”,“COM3”,“COM4”等表示串口;///当参数nParam的值为POS_OPEN_PARALLEL_PORT时,“LPT1”,“LPT2”等表示并口;///当参数nParam的值为POS_OPEN_BYUSB_PORT时,“BYUSB-0”、“BYUSB-1”、“BYUSB-2”、“BYUSB-3”等表示USB端口。///当参数nParam的值为POS_OPEN_PRINTNAME时,表示打开指定的打印机。///当参数nParam的值为POS_OPEN_NETPORT时,表示打开指定的网络接口,如“192.168.10.251”表示网络接口IP地址</param>///<paramname="nComBaudrate">串口通信需要的波特率</param>///<paramname="nComDataBits">串口通信需要的数据位</param>///<paramname="nComStopBits">串口通信需要的停止位</param>///<paramname="nComParity">串口通信需要的是否要奇偶校验</param>///<paramname="nParam">指向以null结尾的打印机名称或端口名称。///参数nParam的值为POS_COM_DTR_DSR、POS_COM_RTS_CTS、POS_COM_XON_XOFF或POS_COM_NO_HANDSHAKE时,///“COM1”,“COM2”,“COM3”,“COM4”等表示串口;///当参数nParam的值为POS_OPEN_PARALLEL_PORT时,“LPT1”,“LPT2”等表示并口;///当参数nParam的值为POS_OPEN_BYUSB_PORT时,“BYUSB-0”、“BYUSB-1”、“BYUSB-2”、“BYUSB-3”等表示USB端口。///当参数nParam的值为POS_OPEN_PRINTNAME时,表示打开指定的打印机。</param>///<returns>如果函数调用成功,返回一个已打开的端口句柄。如果函数调用失败,返回值为INVALID_HANDLE_VALUE(-1)。