|  | 
 
| <  >各位大侠:<BR>       我正在尝试C++Builder与matlab混合编程,但发现了一些问题,一直解决不了,请各位大侠指点指点,在下感激不禁!!!<BR>       我是在C++Builder 5 中应用matlab engine进行matlab函数调用的,在头文件中添加了Engine.h的引用,并进行了Project|Option路径的相关设置,以及用Implib将_libeng.def、_libmx.def和_libmat.def分别生成了*.lib文件,放在文件目录下,并在Add to Project。<BR>       在C++Builder的Form1中添加一按钮,其代码如下:<BR>       void __fastcall TForm1::Button1Click(TObject *Sender)<BR>       {     <BR>          Engine *eng;<BR>         char buffer[256];<BR>         int array[6]={1,2,3,4,5,6};<BR>         mxArray *s=NULL;<BR>         mxArray *t=NULL;<BR>         <BR>         if (!(eng = engOpen("\0"))) {<BR>                       fprintf(stderr, "\nCan't start MATLAB engine\n");<BR>                       exit(-1);<BR>          }<BR>          s=mxCreateDoubleMatrix(1,6,mxREAL);<BR>          mxSetName(s,"s");<BR>          memcpy((void *)mxGetPr(s),(void *)array,sizeof(array)); //好象问题就出在这行,  值传不进Matlab工作空间<BR>          engPutArray(eng,s);<BR>          engEvalString(eng,"s=s*2;");<BR>          engEvalString(eng,"t=1:6;");<BR>          engEvalString(eng,"plot(t,s);");<BR>          engEvalString(eng, "close;");<BR>          engClose(eng);<BR>          mxDestroyArray(s);<BR>          mxDestroyArray(t);<BR>     }<BR><BR>     运行结果:matlab中画板是一片灰色,没有任何数据图形。<BR>     请高手指点,谢谢!</P> | 
 |