各位朋友,请问有没有做过收银票打印的(或累式小票打印的)请帮我看看我以下代码怎么总是不能 CreateFile
代码如下:
类代码:        [StructLayout(LayoutKind.Sequential)]
        private struct OVERLAPPED
        {
            int Internal;
            int InternalHigh;
            int Offset;
            int OffSetHigh;
            int hEvent;
        }
        [DllImport("kernel32.dll")]
        private static extern int CreateFile(string lpFileName, uint dwDesiredAccess, int dwShareMode,
            int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);        [DllImport("kernel32.dll")]
        private static extern bool WriteFile(int hFile, byte[] lpBuffer, int nNumberOfBytesToWrite,
            out int lpNumberOfBytesWritten, out OVERLAPPED lpOverlapped);        [DllImport("kernel32.dll")]
        private static extern bool CloseHandle(int hObject);
        #endregion        public enum HorPos { Left, Center, Right }        private int iHandle;
        private int ColWidth = 32;        public bool Open()
        {
            iHandle = CreateFile("LPT1", 0x40000000, 0, 0, 3, 0, 0);
            if (iHandle != -1)
            {
                return true;
            }
            else
            {
                return false;
            }        }
  
调用代码: if (Printer.GetPrinter() == null || Printer.GetPrinter().Length == 0)
            {
                State = "没有找到合适的打印机...";
                return;
            }            State = "正在打印...";
            try
            {
                LPTControl.PrintClass lpt = new LPTControl.PrintClass();
                lpt.Open();
                lpt.WriteLine("数据头标题", LPTControl.PrintClass.HorPos.Center);
                lpt.WriteLine("数据副标题", LPTControl.PrintClass .HorPos.Center);
                lpt.PrintLine();
                string StrTitle = " 列名1 ";
                StrTitle += "       列名2    ";
                lpt.WriteLine(StrTitle);
                for (int i = 0; i < 3; i++)
                {
                    lpt.WriteLine("abc" + "acc".PadLeft(11, ' '));
                }
                lpt.NewRow();
                lpt.WriteLine("合计:".PadRight(8, ' ') + "aaa".PadLeft(11, ' '));
                lpt.PrintLine();
                lpt.PrintDate();
                lpt.CutPaper();
                lpt.Close();
                System.Threading.Thread.Sleep(500);
                State = "打印完成...";
            }
            catch (Exception Ex)
            {
                State = "打印出错...";
                MessageBox.Show("打印出错:" + Ex.Message);
            }
怎么执行到 iHandle = CreateFile("LPT1", 0x40000000, 0, 0, 3, 0, 0);
的时候 ,总是失败,在线等待