首页 > 解决方案 > Matlab 2017a -> 2018b。访问.NET 程序集不同?

问题描述

使用 Matlab 2017a,我为自己编写了一个使用矢量 CAN 硬件的包装器。它基于vxlapi_NETfrom 向量。

在以前的版本中,我已经能够这样做:

xlstatus = obj.fid.XL_OpenDriver();
if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS   .....

因为xl_opendriver返回了一些类型vxlapi_NET.XL_Status。完全有道理...

现在有了 2018b,情况似乎完全不同了。 XL_OpenDriver返回类型的东西XLDefine+XL_Status

谁能解释一下这个“加号”是什么意思?我以前在 Matlab 中从未见过这样的东西。此外,我没有找到任何翻译if xlstatus == vxlapi_NET.XL_Status.XL_SUCCESS成与 2018b 兼容的解决方案。

vxlapi_NET.XLDefine+XL_Status.XL_STATUS当然,这不是一个有效的表达式。

这是一个错误还是为什么事情的表现如此不同?

非常感谢!

标签: .netmatlab

解决方案


我收到了 MathWorks 支持部门的回复。他们确认发生了一些变化:

类或枚举名称中的“+”表示它嵌套在另一个类中。您不能直接从 .NET 程序集实例化嵌套类或枚举。为此,您必须使用反射。版本之间的界面确实发生了变化。


推荐阅读