【问题标题】:Why is activeX failing to create an object from a Labview executable?为什么 activeX 无法从 Labview 可执行文件创建对象?
【发布时间】:2011-02-28 20:27:58
【问题描述】:

这是我的场景。我正在使用 Quicktest Pro (VB) 从内置到可执行文件中的 Labview VI 创建 ActiveX 对象。在 VI 的构建规范中,我启用了 ActiveX 服务器选项(ActiveX 服务器名称:“MyLabviewProgram”),并且在 VI 工具>选项>VI 服务器:配置中选中了 ActiveX 框。

所以在 QTP 中我的代码是:

Set IvApp = CreateObject("MyLabviewProgram.Application")
Set Vi = IvApp.getVIReference("MyLabviewVI.vi")
Vi.Call ParamNames, ParamVals

运行时,我在第一行得到一个运行错误:

ActiveX 组件无法创建对象:'MyLabviewProgram.Application'

我无法弄清楚它为什么会出错。在 National Instruments 网站上,他们进入了有关“LabVIEW Executable Used as ActiveX Server”的社区页面之一。该步骤是在构建 EXE 之后, 5. 在目标上至少运行一次 EXE 以激活 .TLB 文件。我已经运行了可执行文件,但不确定它们在目标上的含义。

有没有人对我需要做些什么来完成这项工作有什么建议?

【问题讨论】:

    标签: vbscript activex labview


    【解决方案1】:

    您的描述听起来像是您正确创建了一个 vi .exe。 “在目标上”可能意味着“在目标 PC 上”。每次执行时,EXE 都会将所有 COM 注册条目添加到 Windows 注册表。

    听起来您尚未验证注册表中是否存在 COM 注册条目。这是调试的第一步。

    运行 regedit.exe 并在 HKEY_CLASSES_ROOT 子键下搜索 MyLabviewProgram.Application。您应该会找到一个条目,其中包含一个包含GUID(一个大的十六进制数字)的值的子键。

    “类 ID”GUID 应在 HKCR/CLSID 键下引用。该引用应包含一个 LocalServer32 子键,其默认值指向应用程序的 .EXE 文件路径,并附加了 /Automation 参数。

    其中一个步骤似乎可能会失败。如果没有更多信息,我无法确切地说出是哪一个。

    【讨论】:

    • 谢谢,这样做我注意到我提供的 ActiveX 服务器名称中有一个“_”,但在 HKEY_CLASSES_ROOT 子项下,它没有下划线显示。即我的 ActiveX 服务器名称是“MyLabview_Program”,而注册表项是“MyLabviewProgram”,我猜因为我在帖子中将它们重命名为通用名称,所以我仍然应该包含我使用的任何特殊字符。
    猜你喜欢
    • 2010-12-25
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多