0

我正在尝试使用 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。

4

1 回答 1

0

我发现只有当我从 Matlab 调用组件时才会出现问题。这可能与 MCR 混淆有关,COM 组件使用与 Matlab 相同的 MCR。

编辑(1)来自 Builder NE 手册。

使用 MCR 进行测试 当您使用 MCR 进行测试时,请记住 MCR 是 MATLAB 的一个实例。鉴于此,无法将 MCR 加载到 MATLAB 中。例如,如果您使用 MATLAB Builder NE 中的部署工具构建通用 COM 组件,则会生成一个 DLL。如果您随后尝试使用 actxserver 等应用程序测试组件,该应用程序将其进程加载到 MATLAB 中,您实际上是在将 MCR 加载到 MATLAB 中,从而产生如下错误:mwsamp.mymagic(3,[],[]) ???调用错误,调度异常:来源:tmw1.Class1.1_0 描述:MCR 实例不可用因此,在尝试使用 MCR 测试第三方进程之前,请了解它们的行为。如果您不确定这些进程的行为,请联系您的开发人员或系统管理员。

于 2011-12-18T16:48:42.860 回答