这是我的情景。我正在使用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用作ActiveX服务器”。步骤是在构建EXE之后,5。在目标上至少运行一次EXE以激活.TLB文件。我已经运行了可执行文件,但不确定它们在目标上的含义。
是否有人建议我需要做些什么才能使其正常工作?
答案 0 :(得分:1)
您的说明听起来像是您正确创建了vi .exe。 “在目标上”可能意味着“在目标PC上”。每次执行时,EXE都会将所有COM注册条目添加到Windows注册表中。
听起来您尚未验证注册表中是否存在COM注册条目。这是第一个调试步骤。
运行regedit.exe并在MyLabviewProgram.Application
子键下搜索HKEY_CLASSES_ROOT
。您应该找到一个包含子键的条目,该子键包含一个包含GUID
(一个大的十六进制数字)的值。
应在GUID
/ HKCR
键下引用“类ID”CLSID
。该引用应包含一个LocalServer32
子键,其默认值指向应用程序的.EXE文件路径,并附加/Automation
参数。
似乎其中一个步骤会失败。如果没有更多信息,我无法确切地说出哪一个。