【问题标题】:Calling Matlab from C# using COM object使用 COM 对象从 C# 调用 Matlab
【发布时间】:2011-05-16 19:38:11
【问题描述】:

我正在尝试制作一个使用 Matlab 进行处理的简单 C# GUI。我正在尝试使用 Matlab 应用程序 COM 对象进行通信,但在分配过程中出现以下错误:

在 cSharpCallsMATLAB.exe 中发生“System.Runtime.InteropServices.COMException”类型的未处理异常

附加信息:检索 CLSID 为 {491B6189-7E9D-43F4-A7DE-C062DF7B326E} 的组件的 COM 类工厂失败,原因是以下错误:80080005。

之前我创建了必要的对象:

私有 MLApp.MLAppClass ml;

并在表单构造函数中赋值:

ml = new MLApp.MLAppClass();

程序挂在该行并在大约 5 秒后返回错误。

我环顾四周,但似乎无法解决这个问题。有人对如何让 C# 成功连接到 Matlab 有任何建议吗?

谢谢!

【问题讨论】:

    标签: c# com matlab interop


    【解决方案1】:

    首先,看这里:

    如果没有帮助,请尝试Enable Unsafe Mode,它可能会解决 com 对象的一些问题。

    【讨论】:

    • 我遵循了我发现的其中一个示例使用的形式,奇怪的是完全相同的程序在一个系统上运行(它启动 Matlab 命令窗口并执行指令)但给了我另一个是 80080005 错误。您能想出 C# 在一台计算机而不是另一台计算机上联系 Matlab 时遇到问题的任何可能原因吗?
    • 仅供参考,我正在测试的简单程序如下:
    • 命名空间 WindowsFormsApplication1 { public partial class Form1 : Form { private MLApp.MLAppClass ml;公共 Form1() { InitializeComponent(); ml = 新的 MLApp.MLAppClass(); } private void button1_Click(object sender, EventArgs e) { ml.Execute("imagesc(double(rand(50)))"); } } }
    • 我对在 Vista 64 上正常工作并在 XP 32 上抛出异常的代码有一些问题...此代码正在隐藏控制台中执行一些批处理命令行。我从来没有找到原因,我只是展示了控制台,它就可以工作了。如果我奇怪地启用了不安全模式,它也可以工作......
    • 您的 2 配置(操作系统、32/64、.Net 版本...)的规格是什么?
    猜你喜欢
    • 2014-03-05
    • 2012-01-26
    • 1970-01-01
    • 2021-09-14
    • 2014-02-05
    • 2023-04-05
    • 2011-06-20
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多