使用COM对象从C#调用Matlab

5
我正在尝试制作一个简单的C# GUI,它使用Matlab进行处理。我正在尝试使用Matlab应用程序COM对象进行通信,但在分配期间出现以下错误:
未经处理的类型'System.Runtime.InteropServices.COMException'在cSharpCallsMATLAB.exe中发生
附加信息: 由于以下错误,无法检索具有CLSID {491B6189-7E9D-43F4-A7DE-C062DF7B326E}的组件的COM类工厂: 80080005。
之前我创建了必要的对象: private MLApp.MLAppClass ml;
并在表格构造函数中分配它:
ml = new MLApp.MLAppClass();
程序在该行挂起,并在大约5秒后返回错误。
我已经查看了周围,但似乎无法解决这个问题。是否有人知道如何让C#成功连接到Matlab?
谢谢!
1个回答

3

我按照我找到的一个示例所使用的形式进行了跟踪,奇怪的是完全相同的程序可以在一个系统上运行(它启动Matlab命令窗口并执行指令),但在另一个系统上却会给出80080005错误。你认为C#在一台计算机上与Matlab通信有问题而在另一台计算机上没有问题可能的原因是什么? - bsripgh
请注意,我正在测试的简单程序如下: - bsripgh
命名空间 WindowsFormsApplication1 { public partial class Form1 : Form { private MLApp.MLAppClass ml; public Form1() { InitializeComponent(); ml = new MLApp.MLAppClass(); } private void button1_Click(object sender, EventArgs e) { ml.Execute("imagesc(double(rand(50)))"); } }} - bsripgh
我在Vista 64上成功运行的代码,在XP 32上抛出了异常...这段代码在一个隐藏的控制台中执行一些批处理命令。我从未找到原因,只是显示了控制台,然后它就可以工作了。奇怪的是,如果我启用了不安全模式,它也可以工作。 - Pascal Qyy
你的两个配置的规格是什么(操作系统、32/64位、.Net版本等)? - Pascal Qyy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接