上面说的问题我也试出来了,只要#pragma code("myadd.dll")就行,问题出在函数声明上, 看了下matlab同时生成的myadd.h,里面函数定义的是bool MW_CALL_CONV mlfmyadd(int nargout, mxArray **c, mxArray *a, mxArray *b); 要声明成这个。
但问题又来了,这样岂不是开头还要include"myadd.h"?而且这个头文件里还包含了N多matlab的头文件,全要拷到工程里来,而且C和C脚本毕竟还有些不同,程序还会报错。
其实我的情况是这样的。我要用wincc编个系统,接收一组数据,需要分析这组数据的拟合直线的斜率(就是看它们的增长速度),再进行假设检验等功能。
目前想到的是调用matlab。查到几种方法,DDE、OPC以及做成dll等,但这些都要求系统的使用者同时装个matlab,不现实。还有个办法就是matlab生成exe文件给wincc调用,还没搞懂怎么做,所以提问题如下:
1、matlab生成dll的办法到底能不能让系统最后脱离matlab运行,如果行该怎么做?
2、问题1不行就生成exe,那又该怎么做呢?(matlab和wincc两边都给点指导吧。。)
3、实在不行,高人们再帮我想想还有没有别的法实现我的系统要求的功能呢??
回复本条