net 2017 b和2018之间变化
10视图(30天)
显示旧的评论
我有一些代码,我使用创建一个. 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
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
2018年6月4日
编辑:thrunken
2018年6月18日
我在这里发布评论,发现我的问题是由一个已知的缺陷在MATLAB 2018 a。
//www.tianjin-qmedu.com/万博1manbetxsupport/bugreports/1759533
这是你的问题吗?
编辑:他们固定的错误,安装2018更新3。