【发布时间】:2013-04-28 16:41:19
【问题描述】:
我使用 COM 对象从 C# 调用 Matlab 函数。它可以运行,但在通过 COM 实例化 matlab 引擎接口时,在多次调用时会出现异常。
//用于通过COM实例化MATLAB引擎接口
MLApp.MLAppClass matlab = new MLApp.MLAppClass();
它给出的异常:
无法将“MLApp.MLAppClass”类型的 COM 对象转换为接口类型“MLApp.DIMLApp”。此操作失败,因为 IID 为“{669CEC93-6E22-11CF-A4D6-00A024583C19}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:RPC 服务器不可用。 (来自 HRESULT 的异常:0x800706BA)。
我无法弄清楚这一点。任何帮助将不胜感激。
【问题讨论】:
-
我相信 MATLAB COM 对象默认情况下只会创建一个 MATLAB 实例(我认为有一种方法可以阻止这种情况发生,但我想不起来了)因此,如果您尝试一次创建多个
MLAppClass对象,它可能会失败。您在问题中提到“多次通话”;为什么不创建一个MLAppClass对象并重用它?
标签: c# matlab matlab-engine