c#调用matlab的出错的一个解决方法

在C#工程内添加了com应用matlab application type libary后,并参照help写了下面一个简单的例子。
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class program
{
static void Main(string[] args)
{
MLApp.MLAppClass matlab = new MLApp.MLAppClass(); //正确
matlab.Execute("figure(10),plot(1:10)"); //开始出错
matlab.Visible = 0;
}
}
}
MLAppClass 的出错主要由于CLSID {A052DEB6-24BF-4425-B4AE-E8C55D264566}未能完全注册引起的。
相信很多人都碰到,花了九牛二虎之力,终于在国外的网上找到一个有效的解决方案:
1.新建一个reg文件(如fix.reg);
2.用文本打开,拷贝如下内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{669CEC93-6E22-11CF-A4D6-00A024583C19}]
@="DIMLApp"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{669CEC93-6E22-11CF-A4D6-00A024583C19}\NumMethods]
@="21"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{669CEC93-6E22-11CF-A4D6-00A024583C19}\ProxyStubClsid32]
@="{00020420-0000-0000-C000-000000000046}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Interface\{669CEC93-6E22-11CF-A4D6-00A024583C19}\TypeLib]
@="{C36E46AB-6A81-457B-9F91-A7719A06287F}"
"Version"="1.0"
3.保存后双击文件,并同意将注册信息写入注册表。
4.重新编译C#项目,可成功通过并执行。
Tags: 

延伸阅读

最新评论

发表评论