如何多次调用Com对象“编辑” [英] How I Can Calling Com Object Multiple Time "Edited"
本文介绍了如何多次调用Com对象“编辑”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用c#调用matlab中的函数来循环使用com组件
当我尝试它时我有这个例外
无效的被叫方。 (HRESULT异常:0x80020010(DISP_E_BADCALLEE))
这是代码
i want to call function in matlab from c# inside for loop using com component
when i tried it i had this exception
Invalid callee. (Exception from HRESULT: 0x80020010 (DISP_E_BADCALLEE))
this is the code
public void Start()
{
var activationContext = Type.GetTypeFromProgID("matlab.application.single");
var matlab = (MLApp.MLApp)Activator.CreateInstance(activationContext);
matlab.Visible = 0;
int index = 0;
var feture = new double[10][];
for (int j = 1; j < 8; j++)
{
object result1;
string name = @"C:\Users\Eng\Documents\Visual Studio 2010\Projects\FinalProject\FinalProject\Matlab\" +
j + ".JPG";
matlab.Feval("WBC_SegProposed", 6, out result1, name, 0, j);
var res = (Array) result1;
var myEnumerator = res.GetEnumerator();
myEnumerator.MoveNext();
var length = (double) myEnumerator.Current;
var len = (int) length;
myEnumerator.MoveNext();
var area = (double[,]) myEnumerator.Current;
myEnumerator.MoveNext();
var perimeter = (double[,]) myEnumerator.Current;
myEnumerator.MoveNext();
var compactness = (double[,]) myEnumerator.Current;
myEnumerator.MoveNext();
var circularity = (double[,]) myEnumerator.Current;
myEnumerator.MoveNext();
var names = (object[,]) myEnumerator.Current;
}
}
此指令的例外是matlab.Feval(WBC_SegProposed,6,out result1,name,0,j );
我该怎么办?
the exception was for this instruction " matlab.Feval("WBC_SegProposed", 6, out result1, name, 0, j);"
what should i do ?
推荐答案
这篇关于如何多次调用Com对象“编辑”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文