【问题标题】:Brother label printing COM reference errorBrother标签打印COM参考错误
【发布时间】:2014-10-24 19:41:31
【问题描述】:

Brother bpac SDK 让我度过了一段糟糕的时光。我有一个应用程序,我正在尝试从中打印标签。以前可以用,现在不知道哪里出了问题。

这是我得到的错误: 由于以下错误,检索具有 CLSID {B940C105-7F01-46FE-BF41-E040B9BDA83D} 的组件的 COM 类工厂失败:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

代码:

   'Set up the path and template variables
    Dim path As String = "LabelTemplates\SolutionIDtemplate.lbx"

    'Create the bpac document
    Dim doc As New bpac.Document

    If doc.Open(path) <> False Then

        doc.GetObject("objID").Text = id
        doc.GetObject("objExpDate").Text = expDate
        doc.GetObject("objName").Text = name

        'Print the label
        doc.StartPrint("", bpac.PrintOptionConstants.bpoDefault)
        doc.PrintOut(copies, bpac.PrintOptionConstants.bpoDefault)
        doc.EndPrint()
        doc.Close()

    Else

        MessageBox.Show("Error: " + CStr(doc.ErrorCode))

    End If

注意:该类在注册表中,我的项目设置为构建为 32 位应用程序。我看过的所有地方都说去项目>属性>构建选项卡>目标CPU = x86。我已经这样做了,但问题仍然存在。任何帮助都将不胜感激,因为我已经尝试了我能想到的一切。

提前致谢, 以利

【问题讨论】:

  • 您是从不同的机器还是升级(比如 Windows7 升级)机器访问它?您可能需要添加注册的不同版本,或者有时需要通过 RegSvr32 从 Wow64 文件夹重新注册组件
  • 您可能安装了 64 位 bpac 组件而不是 32 位组件?
  • 我已经用 regsvr32 重新注册了 DLL,但这并没有帮助。我会检查驱动程序,并在周一工作时验证它是 32 位的,并会提供更新。任何其他建议表示赞赏。

标签: vb.net printing com


【解决方案1】:

为了将来参考,不要忘记给你的用户提供 b-pac 客户端设置(可以在“\Brother bPAC3 SDK\Redist\”文件夹中找到)。它必须安装在客户端机器上才能使用 dll。否则会抛出这个错误。

【讨论】:

  • 一开始我从这里下载包:brother.co.jp/eng/dev/bpac/download/index.aspx,安装它,然后我进入 \Brother bPAC3 SDK\Redist\ 文件夹并从那里运行安装。它在重新启动后工作。有 64 位和 32 位的版本,我都必须安装
【解决方案2】:

当我开始使用 .net 4 时,我在为工作编写的应用程序上收到了同样的错误。这看起来像是他们在 SDK 中提供的示例代码。当我将其更改为不检查开放路径时,我能够让它工作。

此外,请确保您已随 Bpac 打印机安装了最新的驱动程序。这是我修改后的代码。

  Dim path As String = My.Application.Info.DirectoryPath
  Dim doc As New bpac.Document
    doc = CreateObject("bpac.Document")
    doc.SetPrinter(doc.GetPrinterName().ToString, True)

    doc.Open(path + "/TesterLabel.lbx")
    doc.GetObject("objTicket").Text = lstTickets.Items.Item(0).ToString
    doc.GetObject("objTest").Text = issue
    doc.GetObject("objClaim").Text = strIssue
    doc.DoPrint(PrintOptionConstants.bpoDefault, "")
    doc.EndPrint()
    doc.Close()

【讨论】:

  • 创建 bpac.document 对象时出现错误。它甚至没有到达开放线。
【解决方案3】:

所以我重新安装了 SDK,这似乎有效。感谢您的建议。

【讨论】:

    【解决方案4】:

    我的解决方案是在 Windows 中安装打印机。

    【讨论】:

      【解决方案5】:

      对我来说,诀窍是安装正确版本的 SDK SDK Version,然后我安装了客户端驱动程序并且它工作了

      【讨论】:

        【解决方案6】:

        对我来说,它是将目标框架设置为 .Net 4.0。我正在使用 Brothers SDK:2020 年 7 月 7 日发布的 3.3.001(64 位版本)

        【讨论】:

          【解决方案7】:

          我已经解决了项目 > 属性 > 构建选项卡 > 目标 CPU anycpu - 目标目标 cpu 任何 cpu。 记得查看属性设置项目。

          【讨论】:

            猜你喜欢
            • 2019-08-26
            • 1970-01-01
            • 2014-03-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多