📄 cvi_matlab.txt
字号:
一种CVI与MATLAB混合编程方法
2006-04-23说明:本人对具体原理不是很清楚,部分资料来源于网络,在NI提供的例子的基础上修改完成
调试环境:Windows XP SP2、MATLAB 7.1与NI Labwindows /CVI 7.1
具体步骤如下:
1、 打开“安装盘:\Program Files\National Instruments\CVI71\samples\activex\matlab”目录下NI的例程。
2、 从工程中删除“matlabsrvr.h”、“matlabsrvr.fp”、“matlabsrvr.c”三个文件
3、 打开面板文件“matlabdemo.uir”,点击菜单“tools”->“Create ActiveX Controler”、在ActiveX Server列表中选择“Matlab Application Type library”,一路“Next”,还是起名字“安装盘:\Program Files\National Instruments\CVI71\samples\activex\matlab\ matlabsrvr.fp”
4、 把重新生成的“matlabsrvr.c”、“matlabsrvr.h”重新加到工程中
5、 此时在matlabdemo.c中,那句stat = MLApp_NewDIMLApp (NULL, &hMatlab); 已经被改成stat = MLApp_NewDIMLApp (NULL, 1, LOCALE_NEUTRAL, 0, &hMatlab);了,如果没有变过来就自己改;然后在matlabsrvr.c中将所有的MLApp_IID_DIMLApp用IID_IDispatch代替,在工具eidt下用replace项,打勾的项就是:case sensitive,regular expression,wrap;选 replace all。
6、 还是matlabdemo.c中
/*
const IID IID_IDispatch = {0x669CEC93, 0x6E22, 0x11CF, 0xA4, 0xD6, 0x0, 0xA0, 0x24, 0x58, 0x3C, 0x19 };
const IID MLApp_IID_IMLApp = {0x669CEC92, 0x6E22, 0x11CF, 0xA4, 0xD6, 0x0, 0xA0, 0x24, 0x58, 0x3C, 0x19 };
const IID MLApp_IID_DIMLEval = {0x6E813920, 0x23FE, 0x4D6D, 0x91, 0xF8, 0x56, 0xFA, 0xB0, 0x6C, 0x5D, 0x13 };
*/
这几句不要了,有这几句的话就会说你的程序不支持接口;但是必须在此处加上变量定义 const IID MLApp_IID_DIMLEval;
const IID MLApp_IID_IMLApp;
注意:在NI的例子中有个.M文件不能运行,改个名字就可以了,因为该名字与matlab的关键字重复。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -