我正试图从64位Matlab中调用一个32位DLL。我选择使用Labview,32位及其DLL导入向导,并通过ActiveX调用Labview。我被迫按照这个路径使用由仪器供应商提供的32位DLL。
如果我安装了Labview 64位,我可以使用Matlab行e=actxserver('LabVIEW.Application');
,它加载了精细的
如果我安装了(仅(Labview 32位e=actxserver('LabVIEW.Application');
失败,并显示消息"服务器创建失败:系统找不到指定的文件。">
然而,如果我启动32位Labview可执行文件,使其运行,则matlab行e=actxserver('LabVIEW.Application');
工作正常,并且我可以调用VI,设置参数,从Matlab中运行VI等等。
因此,Matlab无法启动Labview,但它可以"连接"到当前运行的Labview实例。有人能理解并解释发生了什么吗?
谨致问候,Lars Granlöf
验证Windows注册表中的LocalServer键是否指向64位版本的LabVIEW,而是指向32位版本,您可以在此处找到该键:Computer\HKEY_CLASSES_ROOT\CLSID\<GUID>
搜索";LabVIEW应用程序";在windows注册表中查找全局唯一标识符,它看起来类似于{XXXXXXXX-XXXX-XXXXXXXXXXXXXX}
以下是我电脑中的值:
LocalServer:C:\Program Files(x86(\National Instruments\LabVIEW 2018\LabVIEW.exe/Automation
LocalServer32:C:\Program Files(x86(\National Instruments\LabVIEW 2018\LabVIEW.exe/Automation
ProgID:LabVIEW.Application.8
版本独立程序ID:LabVIEW。应用程序