COM组件也没有什么大的问题,运行也没有错误,可是点了VC界面的按钮响应函数,就是不出运行结果。网上说是VC不能调用matlab中的神经网络工具箱函数,我看邓科 的12怎么就可以做呀,为什么呀?那位高手解决一下。我的程序如下:      UpdateData(TRUE);
    ::CoInitialize(NULL);
    double data1[8],data2[4];
     data1[0]=m_n1;
data1[1]=m_n2;
data1[2]=m_n3;
data1[3]=m_n4;
        data1[4]=m_n5;
data1[5]=m_n6;
data1[6]=m_n7;
data1[7]=m_n8;
data2[0]=m_n9;
data2[1]=m_n10;
data2[2]=m_n11;
data2[3]=m_n12;
       
VARIANT PP,TT; VariantInit(&PP);
VariantInit(&TT);
TT.vt=VT_R8 | VT_ARRAY;
SAFEARRAYBOUND rgsabound[2]; rgsabound[0].cElements=2;
rgsabound[0].lLbound=0;
rgsabound[1].cElements=4;
rgsabound[1].lLbound=0;
      
        PP.vt=VT_R8 | VT_ARRAY;
PP.parray=SafeArrayCreate(VT_R8,2,rgsabound);
        PP.parray->pvData=data1;         if(PP.parray==NULL)
{
AfxMessageBox("fail");
    return;
}
TT.parray=SafeArrayCreateVector(VT_R8,0,4);
TT.parray->pvData=data2;
        if(FAILED(::CoInitialize(NULL)))
{
AfxMessageBox("ERROR");
return;
}
        
        
Imysimclass *scom=NULL; HRESULT hr=::CoCreateInstance(CLSID_mysimclass,NULL,CLSCTX_ALL,IID_Imysimclass,(void**)&scom);    if(SUCCEEDED(hr))
   {   
   
   HRESULT hr1=scom->bp3(PP,TT);//在matlab中自己定义的函数
   }
       if(!SUCCEEDED(hr))
   {
   MessageBox("error");
   return;
   }
   m_n13=data1[0]+data2[0];
      
   
   UpdateData(FALSE);
   scom->Release();
   ::CoUninitialize();
                 matlab中编写的BP3函数:
          function SHE(P,T)net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')
net.trainParam.show=50;
net.trainParam.lr=0.05;
net.trainParam.mc=0.9;
net.trainParam.epochs=1000;
net.trainParam.goal=1e-3;
[net,tr]=train(net,P,T);
A=sim(net,P)
E=T-A
MSE=mse(E)
求求各位给个解释!!!!!!!谢谢了呀!