基于matlab的COM与VC 编程
0赞
今晚查资料学习了下,基本过程如下:
注:想实现一个实时从串口读数据并进行分析的应用,需要高精度的数据处理及拟合,所以想用matlab混编,另matlab好像可以直接读串口,需要查下资料。
COM编程,也有很多函数不可使用,明天再查找下matlab直接读取串口的例程,了解下先。
编写一个简单的M文件,带画图功能,如下:
function res = plot_sin(h, r)
x = -pi:pi/100:pi;
y = sin(x);
plot(x,y);
res = 1;
然后输入deploytool,我用的是2008a, 旧版的是comtool;
新建COM工程,然后添加M文件,编译即可。
在VC中调用如下: 注:这三个文件需要拷贝到C工程,在编译目录可以找到,
#include "mwcomtypes.h"
#include "test1_idl.h"
#include "test1_idl_i.c"
void CltSimGPSDlg::OnViewSkyview()
{
// Initialize argument variables
VARIANT res;
VARIANT h;
VARIANT r;
//Initialize the COM library
HRESULT hr = CoInitialize(NULL);
//Create an instance of the COM object you created
Itest1class *pImycomponentclass;
hr=CoCreateInstance(CLSID_test1class, NULL, CLSCTX_INPROC_SERVER, IID_Itest1class,
(void **)&pImycomponentclass);
VariantInit(&h);
VariantInit(&r);
hr=(pImycomponentclass -> plot_sin(1, &res, h, r));
// Uninitialize COM
CoUninitialize();
}