我正在尝试使用Matlab Builder NE在Matlab 2011a中编译COM对象。 我设法构建和打包它,部署它,甚至启动COM服务器。 我在Matlab中使用以下命令
c = actxserver(' MyFirstComServer.Class1');
但是,当我尝试在此句柄上运行任何方法时,我收到类似的错误消息:
c.GetNames(0,'')
???调用错误,调度异常:
来源:MyFirstComServer.Class1.1_0
描述:MCR实例不可用
我在网上找到了与之相关的内容,然而,它并没有帮助我 http://www.mathworks.com/support/solutions/en/data/1-2VS4TC/index.html?product=MN&solution=1-2VS4TC
有人知道该怎么做吗?
编辑:
我发现如果我从Matlab调用组件,问题就会发生 。这可能与MCR混淆有关,COM组件使用的是Matlab使用的相同MCR。 / p>
答案 0 :(得分:0)
我发现问题只有在我从Matlab调用组件时才会发生。这可能与MCR混淆有关,COM组件使用与Matlab相同的MCR。
编辑(1)来自Builder NE手册。
使用MCR进行测试 当您使用MCR进行测试时,请记住MCR是一个实例 MATLAB。鉴于此,不可能将MCR加载到MATLAB中。 例如,如果使用Deployment构建通用COM组件 来自MATLAB Builder NE的工具,您生成一个DLL。 然后,如果您尝试使用actxserver等应用程序测试组件, 它将其进程加载到MATLAB中,您实际上正在加载MCR 进入MATLAB,产生如下错误: mwsamp.mymagic(3,[],[]) ???调用错误,调度异常: 资料来源:tmw1.Class1.1_0 说明:MCR实例不可用 因此,了解之前的第三方流程的行为 试图用MCR测试它们。 如果您不确定这些过程的行为,请联系您的 开发人员或系统管理员。