Vbscript 为什么activeX无法从Labview可执行文件创建对象?

Vbscript 为什么activeX无法从Labview可执行文件创建对象?,vbscript,activex,labview,Vbscript,Activex,Labview,这是我的设想。我正在使用Quicktest Pro(VB)从内置到可执行文件中的Labview VI创建ActiveX对象。在VI的构建规范中,我已启用ActiveX服务器选项(ActiveX服务器名称:“MyLabviewProgram”),并在VI工具>选项>VI服务器:配置中选中ActiveX框 因此,在QTP中,我的代码是: Set IvApp = CreateObject("MyLabviewProgram.Application") Set Vi = IvApp.getVIRefer

这是我的设想。我正在使用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”

我很难弄清楚它为什么会出错。从国家仪器公司的网站上,他们有一个关于“LabVIEW可执行文件用作ActiveX服务器”的社区页面。步骤是在构建EXE 5之后。在目标上至少运行一次EXE以激活.TLB文件。我已经运行了可执行文件,但不确定它们在目标上的含义


有人对我需要做些什么才能让它工作有什么建议吗?

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

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

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

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


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

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

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

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

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


这些步骤中的一个似乎会失败。如果没有更多信息,我无法准确说出是哪一个。

谢谢,这样做时我注意到我提供的ActiveX服务器名称中有一个“\u”,但在HKEY\u CLASSES\u根子键下,它显示在那里,没有下划线。i、 e.我的ActiveX服务器名称是“MyLabview_程序”,注册表项是“MyLabviewProgram”,我想既然我在帖子中将它们重命名为通用,我应该仍然包含我使用的任何特殊字符。谢谢,这样做我注意到我提供的ActiveX服务器名称有一个“389;”在其中,但在HKEY_CLASSES_ROOT子键下,它显示在那里,没有下划线。i、 e.我的ActiveX服务器名称是“MyLabview_程序”,注册表项是“MyLabviewProgram”,我想既然我在帖子中将它们重命名为通用,我应该仍然包含我使用的任何特殊字符。