net 2017 b和2018之间变化

10视图(30天)
KN
KN 2018年4月24日
编辑: thrunken 2018年6月18日
我有一些代码,我使用创建一个. dll与matlab vb.net VS2013内部使用:
网= NET.addAssembly (“SOME_PROJECT.dll”);
AssemblyType = net.AssemblyHandle.GetType (“SOME_PROJECT.ComClass”);
试一试
结果= System.Activator.CreateInstance (AssemblyType);
e
e.message;
如果(isa (e,“NET.NetException”))
eObj = e.ExceptionObject
结束
结束
这在matlab 2017 b和将产生的结果但在2018年我获得SEHException
e =
NetException属性:
ExceptionObject:(1×1 System.Runtime.InteropServices.SEHException]
标识符:MATLAB:净:CLRException: AddSuperClasses”
信息:的信息:外部组件抛出一个异常。↵来源:dotnetcli↵HelpLink:“
原因:{}
栈:[0×1结构]
2017 b和2018之间可能造成什么变化呢?我能做些什么来解决这个问题吗?
2的评论
thrunken
thrunken 2018年6月1日
编辑:thrunken 2018年6月1日
我发现这篇文章虽然自己寻找解决类似的问题。下面是一些c#代码和MATLAB脚本我写。我已经能够复制异常我一直在使用另一个dll。脚本在2017 b,而不是2018年。
c#代码:
名称空间SimpleDLL
{
公开课OuterClass
{
公开课NestedClass
{
公共NestedClass () {}
}
公开课InheritedNestedClass: NestedClass
{
公共InheritedNestedClass () {}
}
/ /返回没有错误在MATLAB 2018
公共NestedClass GetNestedClass ()
{
返回NestedClass ();
}
/ /抛出一个MATLAB 2018错误
公共InheritedNestedClass GetInheritedNestedClass ()
{
返回InheritedNestedClass ();
}
}
}
MATLAB脚本:
dll = NET.addAssembly (“SimpleDLL.dll”);
outerClass = SimpleDLL.OuterClass ();
%不抛出异常
嵌套= outerClass.GetNestedClass ();
%抛出异常
inheritedNested = outerClass.GetInheritedNestedClass ();
唯一的例外是:
错误使用SimpleDll(第6行)
信息:外部组件抛出一个异常。
来源:dotnetcli
HelpLink:
我可以返回一个嵌套类(类内类),但是我不能返回一个类继承自相同的嵌套类。我用。net框架4.6.1如果这很重要。似乎没有改变什么MathWorks报道限制在。net支持2018 a和2017 b之间,所以我困惑问题可能是什么。万博1manbetx

登录置评。

接受的答案

thrunken
thrunken 2018年6月4日
编辑:thrunken 2018年6月18日
我在这里发布评论,发现我的问题是由一个已知的缺陷在MATLAB 2018 a。 //www.tianjin-qmedu.com/万博1manbetxsupport/bugreports/1759533
这是你的问题吗?
编辑:他们固定的错误,安装2018更新3。
4评论
thrunken
thrunken 2018年6月18日
2018现在的固定,可正常工作。

登录置评。

答案(1)

安东尼·波尔
安东尼·波尔 2018年6月8日
我也有同样的问题,但这是一个不能接受的我严重投资赢得形式GUI和一个定制的VB . dll,我经常打电话。
在最基本的层面上你甚至不能打开一个简单的表单。我真不敢相信通过了测试人员在Matlab出版产品非常糟糕。
例子:
- - - - - -
asm = NET.addAssembly (“System.Windows.Forms”);
进口System.Windows.Forms。*
一个=形式;< - - - - -这产生上述dotnetcli错误。
- - - - - - - - - -

标签

s manbetx 845


释放

R2018a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!