1

这是我的场景。我正在使用 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 文件。我已经运行了可执行文件,但不确定它们在目标上的含义。

有没有人对我需要做些什么来让它工作有什么建议?

4

1 回答 1

1

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

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

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

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

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

于 2010-06-07T20:30:58.960 回答