【问题标题】:vb.net ms comm getting exceptionvb.net ms comm 出现异常
【发布时间】:2011-11-27 09:09:06
【问题描述】:

我在应用程序中使用了microsoft com control 6.0向led control发送数据

         MSComm1.EOFEnable = True
        MSComm1.SThreshold = 100
        MSComm1.InputLen = 0
        MSComm1.RThreshold = 1
        MSComm1.InBufferCount = 0
        MSComm1.OutBufferCount = 0
        MSComm1.NullDiscard = False
        MSComm1.CommPort =1
        MSComm1.PortOpen = True <-Getting exception to this line
        ......

我从 HRESULT: 0x800A1F45 得到异常。为什么这个端口没有打开。 当我通过 vb6 运行它时,我没有收到错误...任何人都可以帮助我...

【问题讨论】:

  • 为什么在 .NET 应用程序中使用那个旧东西?为什么不使用 .NET API 直接使用 COM 端口?
  • @JohnSaunders 您能否建议更好的 .NET API 用于与 COM 端口通信
  • SerialPort class。并且不要永远在 .NET 中使用任何 VB6 的东西。它已经有十多年的历史了!

标签: vb.net serial-port serial-communication mscomm32 mscomct2.ocx


【解决方案1】:

错误 800A1F45 通常表示该端口正在被另一个应用程序使用。

您可以根据this Wikipedia article 解码 HRESULT。对于0x800A1F45,您会发现:

  • 第三位是0,所以是微软的错误
  • 设施位是十六进制 0xA,或十进制 10,根据 MSDN list 表示“控制”
  • 错误代码位是十六进制 0x01F45 或十进制 8005。根据error list for the MSComm control 表示“端口已打开”

【讨论】:

  • 非常感谢您的建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多