从MasungPrinter调用GetStatus()时,WPF应用程序强制停止

时间:2019-02-21 15:30:32

标签: c# .net wpf printing

我正在使用c#.Net使用WPF 和我使用MasungPrinter的应用程序通过USB端口连接。

因此,当我从Masung.dll调用getStatus()时,我的应用程序停止运行

这是我在[第1部分]下的代码

public static class MasungDriver {
        [DllImport("MsprintsdkRM.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int SetPrintport(string strPort, int iBaudrate);

        [DllImport("MsprintsdkRM.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int SetInit();

        [DllImport("MsprintsdkRM.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int SetClose();

        [DllImport("MsprintsdkRM.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int PrintSelfcheck();

        [DllImport("MsprintsdkRM.dll", CallingConvention = CallingConvention.Cdecl)]
        public static extern int GetStatus();
}

和[第2部分]

public class MasungPrinter {
    // Get status
       public int GetStatus() {
                try {
                    var result = -1;
                    if (!string.IsNullOrWhiteSpace(UsbPort)) {
                        logger.Debug("print: port {0}", UsbPort);
                        MasungDriver.SetPrintport(UsbPort, 38400);
                        var ok = MasungDriver.SetInit();
                        if (ok == 0) {
                            logger.Debug("print: getting status...");
                            result = MasungDriver.GetStatus();
                            logger.Debug("print: get status: {0}", result);
                            MasungDriver.SetClose();
                        }
                    }
                    return result;
                }
                catch (System.Exception ex) {
                    logger.Warn(ex);
                    throw;
                }
            }
}

每次应用强制停止时,我都会打开并查看日志。

我得到的最后一个日志是(在执行MasungDriver.GetStatus();之前)

  

打印:正在获取状态...

而且我没有任何异常日志

解决此问题的任何想法

谢谢。

0 个答案:

没有答案